social media crossposting tool. 3rd time's the charm
mastodon
misskey
crossposting
bluesky
1from typing import override
2
3from cross.post import Post, PostRef
4from cross.service import OutputService
5from database.connection import DatabasePool
6
7
8class DummyOptions:
9 @classmethod
10 def from_dict(cls, _obj) -> "DummyOptions":
11 return DummyOptions()
12
13
14class StderrOutputService(OutputService):
15 def __init__(self, db: DatabasePool, _options: DummyOptions) -> None:
16 super().__init__("http://localhost", db)
17
18 @override
19 def accept_post(self, post: Post):
20 self.log.info("%s", post)
21
22 @override
23 def accept_repost(self, repost: PostRef, reposted: PostRef):
24 self.log.info("%s, %s", repost.id, reposted.id)
25
26 @override
27 def delete_post(self, post: PostRef):
28 self.log.info("%s", post.id)
29
30 @override
31 def delete_repost(self, repost: PostRef):
32 self.log.info("%s", repost.id)