fix: extract full text from note_tweet for long tweets (fixes #20)

Twitter long tweets (>280 chars) store full text in
note_tweet.note_tweet_results.result.text rather than legacy.full_text.
The parser now prioritizes note_tweet text when available.
This commit is contained in:
jackwener
2026-03-14 13:45:10 +08:00
parent 7de8ad0fbd
commit ce4326ef42
3 changed files with 14 additions and 1 deletions

View File

@@ -246,9 +246,12 @@ def parse_tweet_result(result, depth=0):
if is_retweet:
retweeted_by = user_core.get("screen_name") or user_legacy.get("screen_name", "unknown")
# Prefer note_tweet full text for long tweets ("Show More")
note_text = _deep_get(actual_data, "note_tweet", "note_tweet_results", "result", "text")
return Tweet(
id=actual_data.get("rest_id", ""),
text=actual_legacy.get("full_text", ""),
text=note_text or actual_legacy.get("full_text", ""),
author=author,
metrics=Metrics(
likes=_parse_int(actual_legacy.get("favorite_count"), 0),