84 lines
2.2 KiB
Python
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
|