aboutsummaryrefslogtreecommitdiff
path: root/crawl/analyze.py
blob: add1484cd2eb0b3e7d6aa7458f22b79f2d2b1d14 (plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import time
import json

with open("subjects.json", 'r') as f:
  subjects = json.load(f);

with open("teachers.json", 'r') as f:
  teachers=json.load(f);

with open("timetables.json", 'r') as f:
  timetables=json.load(f);


allteachers = teachers["teachers"];
myteachers = [];
for teacher in allteachers:
  fullname = teacher["teacher"]["displayName"];
  try:
    [surname, firstname] = fullname.split();
  except ValueError:
    surname = "";
    firstname = "";
  faculty = teacher["departments"][0]["shortName"] if teacher["departments"] else "";
  myteachers.append({"fullname": fullname,
    "surname": surname,
    "firstname": firstname,
    "faculty": faculty});

with open("myteachers.json", 'w') as f:
  json.dump(myteachers, f);

myfaculties=[];
allfaculties = teachers["departments"];
for faculty in allfaculties:
  shortname = faculty["shortName"];
  longname  = faculty["displayName"];
  myfaculties.append({"shortname": shortname, "longname": longname});
with open("myfaculties.json", 'w') as f:
  json.dump(myfaculties, f);


myrealteachers=set();
mytimetable={};
myrooms={};
mycourses=[];
for course in timetables:
  melpomeid = course.get("id", course.get("melpomeid"));
  shortname = course["shortname"];
  longname =  course["longname"];
  timetable = course["timetable"];
  days=timetable["days"];
  courseteachers=set();
  courserooms=set();
  courseklassen=set();
  courseslots=[];
  for day in days:
    grids=day["gridEntries"];
    for grid in grids:
      if grid["position1"]:
        for klasse in grid["position1"]:
          if not klasse.get("current"):
            continue;
          klassenname=klasse["current"]["displayName"];
          courseklassen.add(klassenname)
      if grid["position2"]:
        for room in grid["position2"]:
          if not room.get("current"):
            continue;
          roomname=room["current"]["displayName"];
          roomlongname=room["current"]["longName"];
          myrooms[roomname] = roomlongname;
          courserooms.add(roomname);
      cteachers=grid["position3"];
      if cteachers :
        for teacher in cteachers:
          if not teacher.get("current"):
            continue;
          teachername=teacher["current"]["displayName"];
          print(teachername);
          myrealteachers.add(teachername);
          courseteachers.add(teachername);
      duration=grid["duration"];
      courseslots.append({"teachers": list(courseteachers),
        "rooms": list(courserooms),
        "klassen": list(courseklassen),
        "info": grid["lessonInfo"],
        "time": duration});
  mycourses.append({"melpomeid": melpomeid,
    "shortname": shortname,
    "longname": longname,
#    "timetable": timetable,
    "slots": courseslots});

#print(mycourses);

with open("mycourses.json", 'w') as f:
  json.dump(mycourses, f);

myrealcourses=[];
for c in mycourses:
  if len(c["slots"]) > 0 :
    myrealcourses.append(c);

with open("myrealcourses.json", 'w') as f:
  json.dump(myrealcourses, f);

myrealteachers_upper = {name.upper() for name in myrealteachers};
myteachersincourses=[];
for teacher in myteachers:
  fullname = teacher["fullname"];
  if fullname.upper() in myrealteachers_upper :
    myteachersincourses.append(teacher);

with open("myrealteachers.json", 'w') as f:
  json.dump(myteachersincourses, f);

print("Total number of courses: " + str(len(mycourses)));
print("Courses in timetable: " + str(len(myrealcourses)));
print("Total number of teachers: " + str(len(myteachers)));
print("Teachers in timetable: " + str(len(myteachersincourses)));