From 0b992386761b15a5cc5770fa64a6c3e94c2c412a Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Sun, 10 Mar 2019 19:19:50 +0100 Subject: [PATCH] Move subattachment parsing to the respective models --- fbchat/_file.py | 10 ++++++++++ fbchat/_graphql.py | 14 +++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/fbchat/_file.py b/fbchat/_file.py index 4b858a7..c9049aa 100644 --- a/fbchat/_file.py +++ b/fbchat/_file.py @@ -241,3 +241,13 @@ class VideoAttachment(Attachment): large_image=data.get("large_image"), uid=data.get("legacy_attachment_id"), ) + + @classmethod + def _from_subattachment(cls, data): + media = data["media"] + return cls( + duration=media.get("playable_duration_in_ms"), + preview_url=media.get("playable_url"), + medium_image=media.get("image"), + uid=data["target"].get("video_id"), + ) diff --git a/fbchat/_graphql.py b/fbchat/_graphql.py index 81accbb..a23865a 100644 --- a/fbchat/_graphql.py +++ b/fbchat/_graphql.py @@ -61,16 +61,12 @@ def graphql_to_extensible_attachment(a): return None -def graphql_to_subattachment(a): - _type = a["target"]["__typename"] +def graphql_to_subattachment(data): + _type = data["target"]["__typename"] if _type == "Video": - media = a["media"] - return VideoAttachment( - duration=media.get("playable_duration_in_ms"), - preview_url=media.get("playable_url"), - medium_image=media.get("image"), - uid=a["target"].get("video_id"), - ) + return VideoAttachment._from_subattachment(data) + + return None def graphql_to_quick_reply(q, is_response=False):