[twitter] fall back to legacy /media endpoint when not logged in
This commit is contained in:
@@ -993,6 +993,9 @@ class TwitterAPI():
|
|||||||
|
|
||||||
auth_token = cookies.get("auth_token", domain=cookiedomain)
|
auth_token = cookies.get("auth_token", domain=cookiedomain)
|
||||||
|
|
||||||
|
if not auth_token:
|
||||||
|
self.user_media = self.user_media_legacy
|
||||||
|
|
||||||
self.headers = {
|
self.headers = {
|
||||||
"Accept": "*/*",
|
"Accept": "*/*",
|
||||||
"authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejR"
|
"authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejR"
|
||||||
@@ -1139,6 +1142,26 @@ class TwitterAPI():
|
|||||||
}
|
}
|
||||||
return self._pagination_tweets(endpoint, variables)
|
return self._pagination_tweets(endpoint, variables)
|
||||||
|
|
||||||
|
def user_media_legacy(self, screen_name):
|
||||||
|
endpoint = "/graphql/nRybED9kRbN-TOWioHq1ng/UserMedia"
|
||||||
|
variables = {
|
||||||
|
"userId": self._user_id_by_screen_name(screen_name),
|
||||||
|
"count": 100,
|
||||||
|
"includePromotedContent": False,
|
||||||
|
"withSuperFollowsUserFields": True,
|
||||||
|
"withBirdwatchPivots": False,
|
||||||
|
"withSuperFollowsTweetFields": True,
|
||||||
|
"withClientEventToken": False,
|
||||||
|
"withBirdwatchNotes": False,
|
||||||
|
"withVoice": True,
|
||||||
|
"withV2Timeline": False,
|
||||||
|
"__fs_interactive_text": False,
|
||||||
|
"__fs_dont_mention_me_view_api_enabled": False,
|
||||||
|
}
|
||||||
|
return self._pagination_tweets(
|
||||||
|
endpoint, variables, ("user", "result", "timeline", "timeline"),
|
||||||
|
features=False)
|
||||||
|
|
||||||
def user_likes(self, screen_name):
|
def user_likes(self, screen_name):
|
||||||
endpoint = "/graphql/XbHBYpgURwtklXj8NNxTDw/Likes"
|
endpoint = "/graphql/XbHBYpgURwtklXj8NNxTDw/Likes"
|
||||||
variables = {
|
variables = {
|
||||||
@@ -1413,15 +1436,18 @@ class TwitterAPI():
|
|||||||
params["cursor"] = cursor
|
params["cursor"] = cursor
|
||||||
|
|
||||||
def _pagination_tweets(self, endpoint, variables,
|
def _pagination_tweets(self, endpoint, variables,
|
||||||
path=None, stop_tweets=True):
|
path=None, stop_tweets=True, features=True):
|
||||||
extr = self.extractor
|
extr = self.extractor
|
||||||
variables.update(self.variables)
|
variables.update(self.variables)
|
||||||
original_retweets = (extr.retweets == "original")
|
original_retweets = (extr.retweets == "original")
|
||||||
pinned_tweet = extr.pinned
|
pinned_tweet = extr.pinned
|
||||||
|
|
||||||
|
params = {"variables": None}
|
||||||
|
if features:
|
||||||
|
params["features"] = self._json_dumps(self.features_pagination)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
params = {"variables": self._json_dumps(variables),
|
params["variables"] = self._json_dumps(variables)
|
||||||
"features" : self._json_dumps(self.features_pagination)}
|
|
||||||
data = self._call(endpoint, params)["data"]
|
data = self._call(endpoint, params)["data"]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -1564,11 +1590,12 @@ class TwitterAPI():
|
|||||||
|
|
||||||
def _pagination_users(self, endpoint, variables, path=None):
|
def _pagination_users(self, endpoint, variables, path=None):
|
||||||
variables.update(self.variables)
|
variables.update(self.variables)
|
||||||
|
params = {"variables": None,
|
||||||
|
"features" : self._json_dumps(self.features_pagination)}
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
cursor = entry = stop = None
|
cursor = entry = stop = None
|
||||||
params = {"variables": self._json_dumps(variables),
|
params["variables"] = self._json_dumps(variables)
|
||||||
"features" : self._json_dumps(self.features_pagination)}
|
|
||||||
data = self._call(endpoint, params)["data"]
|
data = self._call(endpoint, params)["data"]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user