Skip to content

Commit 57eacb7

Browse files
1 change by Nuxt Studio
1 parent b4ba7cb commit 57eacb7

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

content/blog/yuzu-help-copy.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
title: unlisted
3+
---
4+
5+
# Wie viele Stunden dürfen wir im dritten Semester schwänzen? (CS24-1)
6+
7+
Hellu, die ominöse Zahl von 70% Anwesenheit lässt sich ja bekanntlich nie wirklich ordentlich graspen, deswegen hab ich fix den Stundenplan runtergeladen (6s load time für 150kb danke für nichts CampusKaputt) um auszurechnen, wie viele Stunden wir eigentlich fehlen dürfen.
8+
9+
```js [main.py]
10+
import json, math
11+
from dataclasses import dataclass
12+
13+
14+
@dataclass
15+
class Stunde:
16+
allDay: bool
17+
color: str
18+
font_color: str
19+
description: str
20+
editable: bool
21+
end: int
22+
instructor: str
23+
remarks: str
24+
room: str
25+
sinstructor: str
26+
sroom: str
27+
start: int
28+
title: str
29+
30+
@classmethod
31+
def from_json(cls, obj: dict) -> "Stunde":
32+
return cls(
33+
allDay=bool(obj.get("allDay", False)),
34+
color=obj.get("color", ""),
35+
font_color=obj.get("font_color", obj.get("fontColor", "")),
36+
description=obj.get("description", ""),
37+
editable=bool(obj.get("editable", False)),
38+
end=int(obj.get("end", 0)) if obj.get("end") is not None else 0,
39+
instructor=obj.get("instructor", ""),
40+
remarks=obj.get("remarks", ""),
41+
room=obj.get("room", ""),
42+
sinstructor=obj.get("sinstructor", ""),
43+
sroom=obj.get("sroom", ""),
44+
start=int(obj.get("start", 0)) if obj.get("start") is not None else 0,
45+
title=obj.get("title", ""),
46+
)
47+
48+
49+
with open("./stundenplan.json", encoding="utf-8") as file:
50+
data = json.load(file)
51+
stundenplan: list[Stunde] = [Stunde.from_json(entry) for entry in data]
52+
print(stundenplan[0])
53+
54+
timestamp_semester_3 = 1759038570000
55+
56+
semester_3_stunden: list[Stunde] = [
57+
stunde
58+
for stunde in stundenplan
59+
if stunde.start > timestamp_semester_3 and "Prüfung" not in stunde.remarks
60+
]
61+
62+
module_set: set[str] = set()
63+
for stunde in semester_3_stunden:
64+
module_set.add(stunde.title)
65+
66+
stunden_map: dict[str, int] = {key: 0 for key in module_set}
67+
68+
for stunde in semester_3_stunden:
69+
stunden_map[stunde.title] += 1
70+
71+
print(stunden_map)
72+
73+
schwänzbar_map: dict[str, int] = {
74+
key: math.floor(value * 0.3) for key, value in stunden_map.items()
75+
}
76+
77+
print(schwänzbar_map)
78+
```

0 commit comments

Comments
 (0)