-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubmissionParser.py
42 lines (37 loc) · 1.57 KB
/
submissionParser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from parserLibs import *
def parseSubmissions(curdate):
submissions = {}
reloadSubmissions = True
if path.exists("parsedData\\submissions.json"):
tmpSubmissions = {}
with open("parsedData\\submissions.json","r") as read_file:
tmpSubmissions = json.load(read_file)
parseDate = tmpSubmissions["parseDate"]
print("Submissions for user: \"" + tmpSubmissions["username"] +"\" last parsed on " + parseDate + "\nReload Submissions? (Y/N)")
inpChar = input()
if inpChar=='Y' or inpChar=='y':
reloadSubmissions = True
else:
submissions = tmpSubmissions["data"]
reloadSubmissions = False
if reloadSubmissions:
print("Fetching submissions...")
response = requests.get("https://codeforces.com/api/user.status?handle="+username)
submissions = json.loads(response.text)["result"]
tmp = {}
tmp["parseDate"] = curdate
tmp["data"] = submissions
tmp["username"] = username
with open("parsedData\\submissions.json","w+") as write_file:
json.dump(tmp, write_file)
solved = {}
for submission in submissions:
if "verdict" not in submission:
continue
if not submission["verdict"] == "OK":
continue
if "rating" not in submission["problem"]:
continue
ProblemLink = "https://codeforces.com/problemset/problem/"+str(submission["problem"]["contestId"])+"/"+str(submission["problem"]["index"])
solved[ProblemLink]=True
return solved