Skip to content

Commit

Permalink
Merge pull request #389 from kapi2289/fix-388
Browse files Browse the repository at this point in the history
Fix #388 issue
  • Loading branch information
madsmtm authored Feb 3, 2019
2 parents 82d071d + 56e43ae commit 6ea174b
Showing 1 changed file with 41 additions and 40 deletions.
81 changes: 41 additions & 40 deletions fbchat/graphql.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,19 +142,22 @@ def graphql_to_extensible_attachment(a):
if target:
_type = target["__typename"]
if _type == "MessageLocation":
url = story.get("url")
latitude, longitude = get_url_parameter(
get_url_parameter(story["url"], "u"), "where1"
get_url_parameter(url, "u"), "where1"
).split(", ")
rtn = LocationAttachment(
uid=int(story["deduplication_key"]),
latitude=float(latitude),
longitude=float(longitude),
)
if story["media"]:
rtn.image_url = story["media"]["image"]["uri"]
rtn.image_width = story["media"]["image"]["width"]
rtn.image_height = story["media"]["image"]["height"]
rtn.url = story["url"]
media = story.get("media")
if media and media.get("image"):
image = media["image"]
rtn.image_url = image.get("uri")
rtn.image_width = image.get("width")
rtn.image_height = image.get("height")
rtn.url = url
return rtn
elif _type == "MessageLiveLocation":
rtn = LiveLocationAttachment(
Expand All @@ -166,64 +169,62 @@ def graphql_to_extensible_attachment(a):
if story["target"].get("coordinate")
else None,
name=story["title_with_entities"]["text"],
expiration_time=story["target"]["expiration_time"]
if story["target"].get("expiration_time")
else None,
is_expired=story["target"]["is_expired"],
expiration_time=story["target"].get("expiration_time"),
is_expired=story["target"].get("is_expired"),
)
if story["media"]:
rtn.image_url = story["media"]["image"]["uri"]
rtn.image_width = story["media"]["image"]["width"]
rtn.image_height = story["media"]["image"]["height"]
rtn.url = story["url"]
media = story.get("media")
if media and media.get("image"):
image = media["image"]
rtn.image_url = image.get("uri")
rtn.image_width = image.get("width")
rtn.image_height = image.get("height")
rtn.url = story.get("url")
return rtn
elif _type in ["ExternalUrl", "Story"]:
return ShareAttachment(
url = story.get("url")
rtn = ShareAttachment(
uid=a.get("legacy_attachment_id"),
author=story["target"]["actors"][0]["id"]
if story["target"].get("actors")
else None,
url=story["url"],
original_url=get_url_parameter(story["url"], "u")
if "/l.php?u=" in story["url"]
else story["url"],
url=url,
original_url=get_url_parameter(url, "u")
if "/l.php?u=" in url
else url,
title=story["title_with_entities"].get("text"),
description=story["description"].get("text")
if story.get("description")
else None,
source=story["source"]["text"],
image_url=story["media"]["image"]["uri"]
if story.get("media")
else None,
original_image_url=(
get_url_parameter(story["media"]["image"]["uri"], "url")
if "/safe_image.php" in story["media"]["image"]["uri"]
else story["media"]["image"]["uri"]
)
if story.get("media")
else None,
image_width=story["media"]["image"]["width"]
if story.get("media")
else None,
image_height=story["media"]["image"]["height"]
if story.get("media")
else None,
source=story["source"].get("text"),
attachments=[
graphql_to_subattachment(attachment)
for attachment in story.get("subattachments")
],
)
media = story.get("media")
if media and media.get("image"):
image = media["image"]
rtn.image_url = image.get("uri")
rtn.original_image_url = (
get_url_parameter(rtn.image_url, "url")
if "/safe_image.php" in rtn.image_url
else rtn.image_url
)
rtn.image_width = image.get("width")
rtn.image_height = image.get("height")
return rtn
else:
return UnsentMessage(uid=a.get("legacy_attachment_id"))


def graphql_to_subattachment(a):
_type = a["target"]["__typename"]
if _type == "Video":
media = a["media"]
return VideoAttachment(
duration=a["media"].get("playable_duration_in_ms"),
preview_url=a["media"].get("playable_url"),
medium_image=a["media"].get("image"),
duration=media.get("playable_duration_in_ms"),
preview_url=media.get("playable_url"),
medium_image=media.get("image"),
uid=a["target"].get("video_id"),
)

Expand Down

0 comments on commit 6ea174b

Please sign in to comment.