-
Notifications
You must be signed in to change notification settings - Fork 2
/
script.py
47 lines (33 loc) · 1.49 KB
/
script.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
43
44
from notion.notion import NotionConnector
from gradescope.scope import GSConnector
import os
import json
def main():
get_var = lambda x: os.environ.get(x)
if os.getenv("NOTION_API_KEY") is None:
secrets = json.load(open("secrets.json"))
get_var = lambda x: secrets[x]
API_KEY = get_var("NOTION_API_KEY")
DB_ID = get_var("NOTION_DB_ID")
GS_EMAIL = get_var("GS_EMAIL")
GS_PASSWORD = get_var("GS_PASSWORD")
if API_KEY is None or DB_ID is None or GS_EMAIL is None or GS_PASSWORD is None:
raise ValueError(str(["Missing environment variable: \n" + x for x in ["NOTION_API_KEY", "NOTION_DB_ID", "GS_EMAIL", "GS_PASSWORD"] if get_var(x) is None]))
notion = NotionConnector(API_KEY, DB_ID)
print("Successfully connected to Notion")
notion.update_schema()
gs = GSConnector(GS_EMAIL, GS_PASSWORD)
print("Successfully connected to Gradescope")
assignments = gs.get_all_assignments()
print(f"Successfully retrieved {len(assignments)} assignments from Gradescope")
for assignment in assignments:
if assignment.aid == "0000000": print(f"No AID, skipping {assignment}"); continue
request = notion.add_assignment(assignment)
if request == 100: continue
elif request.status_code == 200:
print(f"Successfully added assignment {assignment.name}")
else:
print(f"Failed to add assignment {assignment.name}")
print(request.text)
if __name__ == "__main__":
main()