|
|
|
@ -252,6 +252,7 @@ class TwitterTimelineExtractor(TwitterExtractor):
|
|
|
|
|
"url": "0106229d408f4111d9a52c8fd2ad687f64842aa4",
|
|
|
|
|
}),
|
|
|
|
|
("https://mobile.twitter.com/supernaturepics?p=i"),
|
|
|
|
|
("https://www.twitter.com/id:2976459548"),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def tweets(self):
|
|
|
|
@ -268,6 +269,7 @@ class TwitterMediaExtractor(TwitterExtractor):
|
|
|
|
|
"url": "0106229d408f4111d9a52c8fd2ad687f64842aa4",
|
|
|
|
|
}),
|
|
|
|
|
("https://mobile.twitter.com/supernaturepics/media#t"),
|
|
|
|
|
("https://www.twitter.com/id:2976459548/media"),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def tweets(self):
|
|
|
|
@ -450,18 +452,18 @@ class TwitterAPI():
|
|
|
|
|
return tweets
|
|
|
|
|
|
|
|
|
|
def timeline_profile(self, screen_name):
|
|
|
|
|
user = self.user_by_screen_name(screen_name)
|
|
|
|
|
endpoint = "2/timeline/profile/{}.json".format(user["rest_id"])
|
|
|
|
|
user_id = self._user_id_by_screen_name(screen_name)
|
|
|
|
|
endpoint = "2/timeline/profile/{}.json".format(user_id)
|
|
|
|
|
return self._pagination(endpoint)
|
|
|
|
|
|
|
|
|
|
def timeline_media(self, screen_name):
|
|
|
|
|
user = self.user_by_screen_name(screen_name)
|
|
|
|
|
endpoint = "2/timeline/media/{}.json".format(user["rest_id"])
|
|
|
|
|
user_id = self._user_id_by_screen_name(screen_name)
|
|
|
|
|
endpoint = "2/timeline/media/{}.json".format(user_id)
|
|
|
|
|
return self._pagination(endpoint)
|
|
|
|
|
|
|
|
|
|
def timeline_favorites(self, screen_name):
|
|
|
|
|
user = self.user_by_screen_name(screen_name)
|
|
|
|
|
endpoint = "2/timeline/favorites/{}.json".format(user["rest_id"])
|
|
|
|
|
user_id = self._user_id_by_screen_name(screen_name)
|
|
|
|
|
endpoint = "2/timeline/favorites/{}.json".format(user_id)
|
|
|
|
|
return self._pagination(endpoint)
|
|
|
|
|
|
|
|
|
|
def timeline_bookmark(self):
|
|
|
|
@ -490,6 +492,11 @@ class TwitterAPI():
|
|
|
|
|
except KeyError:
|
|
|
|
|
raise exception.NotFoundError("user")
|
|
|
|
|
|
|
|
|
|
def _user_id_by_screen_name(self, screen_name):
|
|
|
|
|
if screen_name.startswith("id:"):
|
|
|
|
|
return screen_name[3:]
|
|
|
|
|
return self.user_by_screen_name(screen_name)["rest_id"]
|
|
|
|
|
|
|
|
|
|
@cache(maxage=3600)
|
|
|
|
|
def _guest_token(self):
|
|
|
|
|
endpoint = "1.1/guest/activate.json"
|
|
|
|
|