Commit 757848e
Changed files (1)
src
preview
src/preview/twitter.py
@@ -5,7 +5,7 @@ import re
from datetime import UTC, datetime
from zoneinfo import ZoneInfo
-from glom import glom
+from glom import Coalesce, glom
from loguru import logger
from pyrogram.client import Client
from pyrogram.types import Message
@@ -343,7 +343,7 @@ async def get_tweet_info_via_fxtwitter(url: str = "", handle: str = "", post_id:
logger.info(f"Twitter preview via fxtwitter: {api_url}")
headers = {"user-agent": TELEGRAM_UA}
resp = await hx_req(api_url, headers=headers, proxy=PROXY.TWITTER)
- if resp.get("hx_error") or str(glom(resp, "tweet.id", default="")) != str(post_id):
+ if resp.get("hx_error"):
logger.error("Failed to get tweet info via fxtwitter")
return {}
data: dict = resp["tweet"]
@@ -352,7 +352,7 @@ async def get_tweet_info_via_fxtwitter(url: str = "", handle: str = "", post_id:
data |= parse_article(data["article"])
info = {"handle": glom(data, "author.screen_name", default=handle), "post_id": data.get("id", post_id)}
- media = glom(data, "media.all", default=[])
+ media = glom(data, Coalesce("media.all", "image_urls"), default=[])
for x in media:
if x.get("type", "") == "video" and "mp4" not in x.get("format", ""): # this is a m3u8 url, choose mp4 instead
m3u8_url = x.get("url", "")