[twitter] warn about age-restricted Tweets (#2354)

This commit is contained in:
Mike Fährmann
2022-03-03 01:51:52 +01:00
parent e778be52bc
commit 64bbc7969d

View File

@@ -765,6 +765,7 @@ class TwitterAPI():
"__fs_dont_mention_me_view_api_enabled": False,
}
self._nsfw_warning = True
self._json_dumps = json.JSONEncoder(separators=(",", ":")).encode
self._user = None
@@ -1147,6 +1148,10 @@ class TwitterAPI():
tweets.extend(entry["content"]["items"])
elif esw("conversationthread-"):
tweets.extend(entry["content"]["items"])
elif esw("tombstone-"):
self._report_tombstone(
entry,
entry["content"]["itemContent"]["tombstoneInfo"])
elif esw("cursor-bottom-"):
cursor = entry["content"]
if not cursor.get("stopOnEmptyResponse", True):
@@ -1158,6 +1163,9 @@ class TwitterAPI():
try:
tweet = ((entry.get("content") or entry["item"])
["itemContent"]["tweet_results"]["result"])
if "tombstone" in tweet:
self._report_tombstone(entry, tweet["tombstone"])
continue
legacy = tweet["legacy"]
except KeyError:
extr.log.debug(
@@ -1244,3 +1252,11 @@ class TwitterAPI():
if stop or not cursor or not entry:
return
variables["cursor"] = cursor
def _report_tombstone(self, entry, tombstone):
text = (tombstone.get("richText") or tombstone["text"])["text"]
if text.startswith("Age-restricted") and self._nsfw_warning:
self.extractor.log.warning(text)
self._nsfw_warning = False
self.extractor.log.debug(
"Skipping %s (%s)", entry["entryId"].rpartition("-")[2], text)