Skip to content

Commit eb3f38d

Browse files
committed
feat: fix request format so it won't block by cloudflare
1 parent 77a641a commit eb3f38d

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

app/handler.py

+9-14
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,10 @@
1717
def get_question_of_today():
1818
"""Fetch today's question from Leetcode's GraphQL API"""
1919

20-
client = requests.session()
21-
22-
# Visit leetcode webpage to retrieve a CSRF token first
23-
client.get(LEETCODE_DOMAIN)
24-
25-
if 'csrftoken' in client.cookies:
26-
csrftoken = client.cookies['csrftoken']
27-
else:
28-
csrftoken = ''
29-
30-
response = client.post(
20+
request = requests.Request(
21+
'POST',
3122
LEETCODE_DOMAIN + '/graphql/',
32-
data={
23+
json={
3324
'query': """query questionOfToday {
3425
activeDailyCodingChallengeQuestion {
3526
link
@@ -51,13 +42,17 @@ def get_question_of_today():
5142
}""",
5243
'variables': {},
5344
'operationName': 'questionOfToday',
54-
'csrfmiddlewaretoken': csrftoken
5545
},
5646
headers={
57-
'referer': LEETCODE_ALL_PROBLEM_URL
47+
"authority": "leetcode.com",
48+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
5849
}
5950
)
6051

52+
prepped_request = request.prepare()
53+
session = requests.Session()
54+
response = session.send(prepped_request)
55+
6156
try:
6257
return response.json()
6358
except ValueError:

0 commit comments

Comments
 (0)