RBXLegacy-src/RBXLegacyDiscordBot/lib/imgurpython/helpers/format.py

84 lines
2.2 KiB
Python

from ..helpers import Comment
from ..helpers import GalleryAlbum
from ..helpers import GalleryImage
from ..helpers import Notification
def build_comment_tree(children):
children_objects = []
for child in children:
to_insert = Comment(child)
to_insert.children = build_comment_tree(to_insert.children)
children_objects.append(to_insert)
return children_objects
def format_comment_tree(response):
if isinstance(response, list):
result = []
for comment in response:
formatted = Comment(comment)
formatted.children = build_comment_tree(comment['children'])
result.append(formatted)
else:
result = Comment(response)
result.children = build_comment_tree(response['children'])
return result
def build_gallery_images_and_albums(response):
if isinstance(response, list):
result = []
for item in response:
if item['is_album']:
result.append(GalleryAlbum(item))
else:
result.append(GalleryImage(item))
else:
if response['is_album']:
result = GalleryAlbum(response)
else:
result = GalleryImage(response)
return result
def build_notifications(response):
result = {
'replies': [],
'messages': [Notification(
item['id'],
item['account_id'],
item['viewed'],
item['content']
) for item in response['messages']]
}
for item in response['replies']:
notification = Notification(
item['id'],
item['account_id'],
item['viewed'],
item['content']
)
notification.content = format_comment_tree(item['content'])
result['replies'].append(notification)
return result
def build_notification(item):
notification = Notification(
item['id'],
item['account_id'],
item['viewed'],
item['content']
)
if 'comment' in notification.content:
notification.content = format_comment_tree(item['content'])
return notification