[twitter] fix using user IDs for suspended accounts
This commit is contained in:
@@ -417,7 +417,11 @@ class TwitterTimelineExtractor(TwitterExtractor):
|
|||||||
"url": "c570ac1aae38ed1463be726cc46f31cac3d82a40",
|
"url": "c570ac1aae38ed1463be726cc46f31cac3d82a40",
|
||||||
}),
|
}),
|
||||||
# suspended account (#2216)
|
# suspended account (#2216)
|
||||||
("https://twitter.com/realDonaldTrump", {
|
("https://twitter.com/OptionalTypo", {
|
||||||
|
"exception": exception.NotFoundError,
|
||||||
|
}),
|
||||||
|
# suspended account user ID
|
||||||
|
("https://twitter.com/id:772949683521978368", {
|
||||||
"exception": exception.NotFoundError,
|
"exception": exception.NotFoundError,
|
||||||
}),
|
}),
|
||||||
("https://mobile.twitter.com/supernaturepics?p=i"),
|
("https://mobile.twitter.com/supernaturepics?p=i"),
|
||||||
@@ -1149,25 +1153,21 @@ class TwitterAPI():
|
|||||||
return self._call(endpoint, params)["data"]["user"]["result"]
|
return self._call(endpoint, params)["data"]["user"]["result"]
|
||||||
|
|
||||||
def _user_id_by_screen_name(self, screen_name):
|
def _user_id_by_screen_name(self, screen_name):
|
||||||
if screen_name.startswith("id:"):
|
user = ()
|
||||||
user_id = screen_name[3:]
|
try:
|
||||||
user = self.user_by_rest_id(user_id)
|
if screen_name.startswith("id:"):
|
||||||
|
user = self.user_by_rest_id(screen_name[3:])
|
||||||
else:
|
else:
|
||||||
user = ()
|
|
||||||
try:
|
|
||||||
user = self.user_by_screen_name(screen_name)
|
user = self.user_by_screen_name(screen_name)
|
||||||
user_id = user["rest_id"]
|
self.extractor._assign_user(user)
|
||||||
except KeyError:
|
return user["rest_id"]
|
||||||
if "unavailable_message" in user:
|
except KeyError:
|
||||||
raise exception.NotFoundError("{} ({})".format(
|
if "unavailable_message" in user:
|
||||||
user["unavailable_message"].get("text"),
|
raise exception.NotFoundError("{} ({})".format(
|
||||||
user.get("reason")), False)
|
user["unavailable_message"].get("text"),
|
||||||
else:
|
user.get("reason")), False)
|
||||||
raise exception.NotFoundError("user")
|
else:
|
||||||
|
raise exception.NotFoundError("user")
|
||||||
self.extractor._assign_user(user)
|
|
||||||
return user_id
|
|
||||||
|
|
||||||
@cache(maxage=3600)
|
@cache(maxage=3600)
|
||||||
def _guest_token(self):
|
def _guest_token(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user