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