Skip to content
Prev Previous commit
Next Next commit
Query and parse companies from Leetcode API
  • Loading branch information
seanprashad committed Aug 6, 2022
commit 6a1d133af34c286d74303d302c4456e68e8873ac
29 changes: 22 additions & 7 deletions cron/update_questions.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import os
import json
from datetime import datetime
import leetcode
import leetcode.auth
from datetime import datetime

LEETCODE_SESSION_TOKEN = os.environ.get("LEETCODE_SESSION_TOKEN")

questions_file = os.getcwd() + "/src/data/questions.json"

print("=== Reading questions file ===")
Expand Down Expand Up @@ -34,23 +33,39 @@
api_instance = leetcode.DefaultApi(leetcode.ApiClient(configuration))

for question in questions["data"]:
# for x in range(1):
# question = questions["data"][0]

graphql_request = leetcode.GraphqlQuery(
query='''query questionData($titleSlug: String!) {
question(titleSlug: $titleSlug) {
difficulty
companyTagStats
}
}
''',
variables=leetcode.GraphqlQueryGetQuestionDetailVariables(title_slug=question["url"])
variables=leetcode.GraphqlQueryGetQuestionDetailVariables(
title_slug=question["url"])
)

response = api_instance.graphql_post(body=graphql_request).to_dict()

our_difficulty = question["difficulty"]
leetcode_difficulty = response["data"]["question"]["difficulty"]
leetcode_companies = json.loads(
response["data"]["question"]["company_tag_stats"])["1"]

companies = []

for leetcode_company in leetcode_companies:
company = {
"name": leetcode_company["slug"],
"frequency": leetcode_company["timesEncountered"]
}

companies.append(company)

if leetcode_difficulty != our_difficulty:
print(f'{question["name"]}: {our_difficulty} -> {leetcode_difficulty}')
question["difficulty"] = leetcode_difficulty
question["difficulty"] = leetcode_difficulty
question["companies"] = companies

print("=== Finished checking all questions ===")

Expand Down