Commit a218c78c authored by nanahira's avatar nanahira

add COOKIE and CSRF

parent d21ae6e7
Pipeline #21323 passed with stages
in 37 seconds
...@@ -32,6 +32,9 @@ privateKey = os.getenv('TWITTER_AUTH_KEY') ...@@ -32,6 +32,9 @@ privateKey = os.getenv('TWITTER_AUTH_KEY')
if privateKey: if privateKey:
twitterKeys = privateKey.split(" ") twitterKeys = privateKey.split(" ")
cookie = os.getenv('COOKIE')
csrf = os.getenv('CSRF')
print("Booting") print("Booting")
ENDPOINT = { ENDPOINT = {
"UserTweetsAndReplies": "CwLU7qTfeu0doqhSr6tW4A", "UserTweetsAndReplies": "CwLU7qTfeu0doqhSr6tW4A",
...@@ -66,13 +69,18 @@ FeaturesJson = json.dumps(FeaturesDict) ...@@ -66,13 +69,18 @@ FeaturesJson = json.dumps(FeaturesDict)
healthLock = threading.Lock() healthLock = threading.Lock()
isHealthy = True isHealthy = True
def getTwitterSession(): def getTwitterSession(useCookie):
twitter_b = OAuth2Session() twitter_b = OAuth2Session()
twitter_b.headers["Authorization"] = "Bearer {}".format(random.choice(twitterKeys)) twitter_b.headers["Authorization"] = "Bearer {}".format(random.choice(twitterKeys))
twitter_b.headers['user-agent'] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
if cookie and csrf and useCookie:
twitter_b.headers['cookie'] = cookie
twitter_b.headers['x-csrf-token'] = csrf
return twitter_b return twitter_b
def doSearch(screen_name, twitter_b): def doSearch(screen_name):
global isHealthy global isHealthy
twitter_b = getTwitterSession(True)
searchurl_v2 = "https://api.twitter.com/2/search/adaptive.json" searchurl_v2 = "https://api.twitter.com/2/search/adaptive.json"
params_v2 = { params_v2 = {
"q": "from:@{}".format(screen_name), "q": "from:@{}".format(screen_name),
...@@ -111,15 +119,14 @@ def doSearch(screen_name, twitter_b): ...@@ -111,15 +119,14 @@ def doSearch(screen_name, twitter_b):
"include_ext_edit_control": 'true', "include_ext_edit_control": 'true',
"ext": 'mediaStats,highlightedLabel,hasNftAvatar,voiceInfo,birdwatchPivot,enrichments,superFollowMetadata,unmentionInfo,editControl,collab_control,vibe', "ext": 'mediaStats,highlightedLabel,hasNftAvatar,voiceInfo,birdwatchPivot,enrichments,superFollowMetadata,unmentionInfo,editControl,collab_control,vibe',
} }
return None response = twitter_b.get(searchurl_v2, params=params_v2)
#response = twitter_b.get(searchurl_v2, params=params_v2) search_v2 = response.json()
#search_v2 = response.json() isHealthy = 'globalObjects' in search_v2
#isHealthy = 'globalObjects' in search_v2 if isHealthy:
#if isHealthy: return search_v2["globalObjects"]["tweets"]
# return search_v2["globalObjects"]["tweets"] else:
#else: print("Search error: " + response.text)
# print("Search error: " + response.text) return None
# return None
@app.route('/_healthy') @app.route('/_healthy')
def healthy(): def healthy():
...@@ -170,7 +177,7 @@ def searchban(screen_name): ...@@ -170,7 +177,7 @@ def searchban(screen_name):
# twitter = OAuth1Session(TWITTER_IPHONE_CK, TWITTER_IPHONE_CS) # twitter = OAuth1Session(TWITTER_IPHONE_CK, TWITTER_IPHONE_CS)
twitter_b = getTwitterSession() twitter_b = getTwitterSession(False)
# check rate limit # check rate limit
# response = twitter_b.get("https://api.twitter.com/1.1/application/rate_limit_status.json") # response = twitter_b.get("https://api.twitter.com/1.1/application/rate_limit_status.json")
...@@ -276,7 +283,7 @@ def searchban(screen_name): ...@@ -276,7 +283,7 @@ def searchban(screen_name):
if returnjson["tests"]["typeahead"] == False: if returnjson["tests"]["typeahead"] == False:
print("{} is search suggestion banned, checking search ban.".format(screen_name)) print("{} is search suggestion banned, checking search ban.".format(screen_name))
search_tweets = doSearch(screen_name, twitter_b) search_tweets = doSearch(screen_name)
if search_tweets is None: if search_tweets is None:
returnjson["tests"]["search"] = '_error' returnjson["tests"]["search"] = '_error'
hasFailure = True hasFailure = True
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment