social media crossposting tool. 3rd time's the charm
mastodon
misskey
crossposting
bluesky
1import cross
2from util.media import MediaInfo
3
4class MisskeyPost(cross.Post):
5 def __init__(self, note: dict, tokens: list[cross.Token], files: list[MediaInfo]) -> None:
6 super().__init__()
7 self.note = note
8 self.sensitive = any([a.get('isSensitive', False) for a in note.get('files', [])])
9 self.media_attachments = files
10 self.tokens = tokens
11
12 def get_tokens(self) -> list[cross.Token]:
13 return self.tokens
14
15 def get_parent_id(self) -> str | None:
16 return self.note.get('replyId')
17
18 def get_post_date_iso(self) -> str:
19 date = self.note.get('createdAt')
20 return date or super().get_post_date_iso()
21
22 def get_attachments(self) -> list[MediaInfo]:
23 return self.media_attachments
24
25 def get_id(self) -> str:
26 return self.note['id']
27
28 def get_cw(self) -> str:
29 return self.note.get('cw') or ''
30
31 def get_languages(self) -> list[str]:
32 return []
33
34 def is_sensitive(self) -> bool:
35 return self.sensitive