aboutsummaryrefslogtreecommitdiff
path: root/crawl/analyze.py
diff options
context:
space:
mode:
Diffstat (limited to 'crawl/analyze.py')
-rw-r--r--crawl/analyze.py122
1 files changed, 122 insertions, 0 deletions
diff --git a/crawl/analyze.py b/crawl/analyze.py
new file mode 100644
index 0000000..add1484
--- /dev/null
+++ b/crawl/analyze.py
@@ -0,0 +1,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)));
+
+