39 lines
1.3 KiB
Python
39 lines
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'],
|
|
}
|