Commit 757848e

benny-dou <60535774+benny-dou@users.noreply.github.com>
2026-05-06 13:36:57
fix(twitter): fix fxtwitter preview
1 parent 259a90f
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", "")