toot/toot/ui/parsers.py

39 wiersze
1.3 KiB
Python

from toot.utils import format_content
def parse_status(status):
_status = status.get('reblog') or status
account = parse_account(_status['account'])
content = list(format_content(_status['content']))
spoiler_text = list(format_content(_status['spoiler_text'])) if _status['spoiler_text'] else []
created_at = status['created_at'][:19].split('T')
boosted_by = parse_account(status['account']) if status['reblog'] else None
return {
'account': account,
'boosted_by': boosted_by,
'created_at': created_at,
'content': content,
'favourited': status.get('favourited'),
'favourites_count': _status['favourites_count'],
'id': status['id'],
'in_reply_to_id': _status.get('in_reply_to_id'),
'media_attachments': _status['media_attachments'],
'url': _status['url'],
'reblogged': status.get('reblogged'),
'reblogs_count': _status['reblogs_count'],
'replies_count': _status.get('replies_count', 0),
'spoiler_text': spoiler_text,
'sensitive': _status['sensitive'],
'show_sensitive': False,
}
def parse_account(account):
return {
'id': account['id'],
'acct': account['acct'],
'display_name': account['display_name'],
}