[twitter] use GraphQL search by default (#4264)
This commit is contained in:
@@ -3221,13 +3221,12 @@ extractor.twitter.search-endpoint
|
||||
Type
|
||||
``string``
|
||||
Default
|
||||
``"auto"``
|
||||
``"graphql"``
|
||||
Description
|
||||
Selects the API endpoint used to retrieve search results.
|
||||
|
||||
* ``"rest"``: Legacy REST endpoint - returns a ``403 Forbidden`` error when not logged in
|
||||
* ``"graphql"``: New GraphQL endpoint
|
||||
* ``"auto"``: ``"rest"`` when logged in, ``"graphql"`` otherwise
|
||||
* ``"graphql"``: GraphQL endpoint
|
||||
* ``"rest"``: Legacy REST endpoint
|
||||
|
||||
|
||||
extractor.twitter.timeline.strategy
|
||||
|
||||
@@ -510,13 +510,13 @@ class TwitterTimelineExtractor(TwitterExtractor):
|
||||
if not self.textonly:
|
||||
# try to search for media-only tweets
|
||||
tweet = None
|
||||
for tweet in self.api.search_adaptive(query + " filter:links"):
|
||||
for tweet in self.api.search_timeline(query + " filter:links"):
|
||||
yield tweet
|
||||
if tweet is not None:
|
||||
return
|
||||
|
||||
# yield unfiltered search results
|
||||
yield from self.api.search_adaptive(query)
|
||||
yield from self.api.search_timeline(query)
|
||||
|
||||
def _select_tweet_source(self):
|
||||
strategy = self.config("strategy")
|
||||
@@ -693,7 +693,7 @@ class TwitterSearchExtractor(TwitterExtractor):
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
return self.api.search_adaptive(query)
|
||||
return self.api.search_timeline(query)
|
||||
|
||||
|
||||
class TwitterHashtagExtractor(TwitterExtractor):
|
||||
@@ -1087,8 +1087,8 @@ class TwitterAPI():
|
||||
auth_token = cookies.get("auth_token", domain=cookiedomain)
|
||||
|
||||
search = extractor.config("search-endpoint")
|
||||
if search == "graphql" or not auth_token and search in ("auto", None):
|
||||
self.search_adaptive = self.search_timeline
|
||||
if search == "rest":
|
||||
self.search_timeline = self.search_adaptive
|
||||
|
||||
self.headers = {
|
||||
"Accept": "*/*",
|
||||
|
||||
Reference in New Issue
Block a user