Mobilizon-Reshare-condividi.../mobilizon_bots/publishers/__init__.py

38 lines
1.3 KiB
Python

from typing import Iterable
from mobilizon_bots.publishers import abstract
def run(publishers: Iterable[abstract.AbstractPublisher]) -> dict:
invalid_credentials, invalid_event = [], []
for p in publishers:
if not p.are_credetials_valid():
invalid_credentials.append(p)
if not p.is_event_valid():
invalid_event.append(p)
if invalid_credentials or invalid_event:
# TODO: consider to use exceptions or data class if necessary
return {
"status": "fail",
"description": "Validation failed for at least 1 publisher",
"invalid_credentials": invalid_credentials,
"invalid_event": invalid_event,
}
failed_publishers, successful_publishers = [], []
for p in publishers:
if p.post():
successful_publishers.append(p)
else:
failed_publishers.append(p)
if failed_publishers:
return {
"status": "fail",
"description": "Posting failed for at least 1 publisher",
"failed_publishers": failed_publishers,
"successful_publishers": successful_publishers,
}
return {
"status": "success",
"description": "https://www.youtube.com/watch?v=2lHgmC6PBBE",
}