blob: 2f72ef111d7015c98d9a0361dae339cc542906c2 (
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
|
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
import time
import json
driver = webdriver.Chrome()
driver.get("https://melpomene.webuntis.com/WebUntis/?school=HS-Augsburg#/basic/timetablePublic")
time.sleep(5)
cookies = driver.get_cookies()
s = requests.Session()
for cookie in cookies:
s.cookies.set(cookie['name'], cookie['value'])
myheaders = {
"Accept": "application/json, text/plain, */*",
"anonymous-school": "HS-Augsburg"}
myrealteachers=set();
myrooms={};
mycourses=[];
melpomeid = 14880;
shortname="FredK";
longname="FredL";
result = s.get("https://melpomene.webuntis.com/WebUntis/api/rest/view/v1/timetable/entries?start=2025-04-07&end=2025-04-12&format=3&resourceType=SUBJECT&resources=" + str(melpomeid) + "&periodTypes=&timetableType=STANDARD",
headers=myheaders);
timetable = json.loads(result.text);
print(timetable);
days=timetable["days"];
courseteachers=set();
courserooms=set();
courseklassen=set();
courseslots=[];
for day in days:
grids=day["gridEntries"];
for grid in grids:
print(grid);
teachers=grid["position2"];
for teacher in teachers:
teachername=teacher["current"]["displayName"];
print(teachername);
courseteachers.add(teachername);
try:
for room in grid["position3"]:
roomname=room["current"]["displayName"];
roomlongname=room["current"]["longName"];
print(roomname);
myrooms[roomname] = roomlongname;
courserooms.add(roomname);
except TypeError:
print("Cannot handle: ");
print(grid);
pass;
for klasse in grid["position1"]:
klassenname=klasse["current"]["displayName"];
print(klassenname);
courseklassen.add(klassenname)
duration=grid["duration"];
print(duration);
courseslots.append({"teachers": list(courseteachers),
"rooms": list(courserooms),
"klassen": list(courseklassen),
"time": duration});
mycourses.append({"melpomeid": melpomeid,
"shortname": shortname,
"longname": longname,
"slots": courseslots});
print(mycourses);
|