from abc import abstractmethod from typing import Iterable, override import misskey import config class FediverseNote: """Abstraction for notes Use this to talk to per-software implementations""" def __init__(self, note): pass class FediverseClient: def __init__(self, instance, software): self.instance = instance self.software = software @abstractmethod def get_notifications(self) -> Iterable[FediverseNote]: """Page through notifications from the instance""" pass @abstractmethod def create_note(self, text, visibility, addressee, attachment): """Create a new note""" pass class MisskeyClient(FediverseClient): def __init__(self, instance, software): super().__init__(instance, software) def get_notifications(self) -> Iterable[FediverseNote]: pass def create_note(self, text, visibility, addressee, attachment): pass class PleromaClient(FediverseClient): def __init__(self, instance, software): super().__init__(instance, software) def get_notifications(self) -> Iterable[FediverseNote]: pass def create_note(self, text, visibility, addressee, attachment): pass