-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgetFromAPI.py
77 lines (65 loc) · 2.66 KB
/
getFromAPI.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import requests
import json
from datetime import datetime, timezone
import toDB
def utc_to_local(utc_dt):
return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)
def day_of_the_week(dayNum):
if dayNum == 0:
return "Monday"
if dayNum == 1:
return "Tuesday"
if dayNum == 2:
return "Wednesday"
if dayNum == 3:
return "Thursday"
if dayNum == 4:
return "Friday"
if dayNum == 5:
return "Saturday"
if dayNum == 6:
return "Sunday"
def extract(email, token, course, course_name):
headers = {"Authorization" : "Bearer {}".format(token)}
params = {"state[]" : "all"}
final_sch = {"email" : [],"course_num": [] ,"course_name": [], "assignment_name" : [], "due_date": [], "due_time": [], "day_name": [], "method": [], "submission_status": []}
url = "https://bostoncollege.instructure.com/api/v1/courses/{}/assignment_groups?exclude_assignment_submission_types%5B%5D=wiki_page&exclude_response_fields%5B%5D=description&exclude_response_fields%5B%5D=rubric&include%5B%5D=assignments&include%5B%5D=discussion_topic&override_assignment_dates=true&per_page=50".format(course)
r = requests.get(url, headers = headers, params = params)
assignment_groups = r.json()
# print(assignment_groups)
for group in assignment_groups:
for assignment in group["assignments"]:
assignment_name = assignment["name"]
date_temp = assignment["due_at"]
submission_status = str(assignment["has_submitted_submissions"])
try:
date_temp = date_temp.strip("Z")
date_temp = date_temp.replace("T", " ")
date_temp = date_temp.replace("-", "/")
date_time_obj = datetime.strptime(date_temp, '%Y/%m/%d %H:%M:%S')
date_time_local = utc_to_local(date_time_obj)
local_due_string = date_time_local.strftime('%Y-%m-%d %H:%M:%S')
date_split = local_due_string.split()
due_date = date_split[0]
due_time = date_split[1]
day_name = day_of_the_week(date_time_local.weekday())
except:
due_date = ""
due_time = ""
day_name = ""
final_sch["course_name"].append(course_name)
final_sch["email"].append(email)
final_sch["course_num"].append(course)
final_sch["assignment_name"].append(assignment_name)
final_sch["due_date"].append(due_date)
final_sch["due_time"].append(due_time)
final_sch["day_name"].append(day_name)
final_sch["method"].append("api")
final_sch["submission_status"].append(submission_status)
print(r)
# with open('data.json', 'w') as json_file:
# json.dump(final_sch, json_file, indent = 1)
# json.dump(r.json(), json_file, indent = 1)
toDB.add_schedule(final_sch)
# if __name__ == "__main__":
# extract("[email protected]", "1019~RyGU7GNJXgpC1fThYTSGF04F133EJomeJGMn4uWR3wqSqIPVsfsEA3YVkksLubiE", "1631190")