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')
if privateKey:
twitterKeys = privateKey.split(" ")
cookie = os.getenv('COOKIE')
csrf = os.getenv('CSRF')
print("Booting")
ENDPOINT = {
"UserTweetsAndReplies": "CwLU7qTfeu0doqhSr6tW4A",
......@@ -66,13 +69,18 @@ FeaturesJson = json.dumps(FeaturesDict)
healthLock = threading.Lock()
isHealthy = True
def getTwitterSession():
def getTwitterSession(useCookie):
twitter_b = OAuth2Session()
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
def doSearch(screen_name, twitter_b):
def doSearch(screen_name):
global isHealthy
twitter_b = getTwitterSession(True)
searchurl_v2 = "https://api.twitter.com/2/search/adaptive.json"
params_v2 = {
"q": "from:@{}".format(screen_name),
......@@ -111,15 +119,14 @@ def doSearch(screen_name, twitter_b):
"include_ext_edit_control": 'true',
"ext": 'mediaStats,highlightedLabel,hasNftAvatar,voiceInfo,birdwatchPivot,enrichments,superFollowMetadata,unmentionInfo,editControl,collab_control,vibe',
}
return None
#response = twitter_b.get(searchurl_v2, params=params_v2)
#search_v2 = response.json()
#isHealthy = 'globalObjects' in search_v2
#if isHealthy:
# return search_v2["globalObjects"]["tweets"]
#else:
# print("Search error: " + response.text)
# return None
response = twitter_b.get(searchurl_v2, params=params_v2)
search_v2 = response.json()
isHealthy = 'globalObjects' in search_v2
if isHealthy:
return search_v2["globalObjects"]["tweets"]
else:
print("Search error: " + response.text)
return None
@app.route('/_healthy')
def healthy():
......@@ -170,7 +177,7 @@ def searchban(screen_name):
# twitter = OAuth1Session(TWITTER_IPHONE_CK, TWITTER_IPHONE_CS)
twitter_b = getTwitterSession()
twitter_b = getTwitterSession(False)
# check rate limit
# response = twitter_b.get("https://api.twitter.com/1.1/application/rate_limit_status.json")
......@@ -276,7 +283,7 @@ def searchban(screen_name):
if returnjson["tests"]["typeahead"] == False:
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:
returnjson["tests"]["search"] = '_error'
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