diff options
| author | Loïc Guégan <manzerbredes@mailbox.org> | 2025-07-26 18:23:35 +0200 |
|---|---|---|
| committer | Loïc Guégan <manzerbredes@mailbox.org> | 2025-07-26 18:23:35 +0200 |
| commit | b3ed0d7b341e19f536b8c3ef12daae4cbf2adf25 (patch) | |
| tree | 55f109373a27de645b91a650f1fe945733f01658 | |
| parent | 99bb198d050d913b5e5fcf65c4d67d5dbf5edbce (diff) | |
Minor changes
| -rw-r--r-- | infos2.yaml | 7 | ||||
| -rwxr-xr-x | main2.py | 68 |
2 files changed, 54 insertions, 21 deletions
diff --git a/infos2.yaml b/infos2.yaml index 4c3809b..29d2183 100644 --- a/infos2.yaml +++ b/infos2.yaml @@ -4,7 +4,7 @@ semester: start: "11/08/2025" end: "15/12/2025" slots: - lectures: + lecture: friday: start: "12:15" end: "14:00" @@ -13,15 +13,14 @@ semester: start: "09:15" end: "10:00" room: "A67" - - events: test: type: "lecture" name: "My event name" date: "19/11/2025" hidden: no + weekly: yes who: "loic" start: "10:00" end: "11:00" - room: "A232" +# room: "A232" @@ -21,22 +21,22 @@ def getnextdayn(d,n): return (d+timedelta(days=n)) def getweek(d): return d.isocalendar().week - -#### Load events -events={} -for e in _i["events"]: - _e=_i["events"][e] - events[e]={ - "type": _e["type"], - "name": _e["name"], - "date": parse_date(_e["date"]), - } - events[e]["hidden"]=_e["hidden"] if "hidden" in _e.keys() else False - events[e]["who"]=_e["who"] if "who" in _e.keys() else None - events[e]["start"]=parse_time(_e["start"]) if "start" in _e.keys() else None - events[e]["end"]=parse_time(_e["end"]) if "end" in _e.keys() else None - events[e]["room"]=_e["room"] if "room" in _e.keys() else None - print(events[e]) +def getdayname(d): + return d.strftime("%A").lower() +#### Formatting +def gettime(d): + return d.strftime("%H:%M") +def formatevents(d): + output="" + for e in events: + _e=events[e] + if (not _e["hidden"]) and (_e["date"].date() == d.date() or (_e["weekly"] and (_e["date"].weekday()==d.weekday()) and _e["date"].date()<=d.date())): + if _e["start"] is not None: + output+=gettime(_e["start"])+"-"+gettime(_e["end"])+"\n" + if _e["room"] is not None: + output+="Room: "+_e["room"]+"\n" + output+=_e["name"] + return output #### Load semester sem={ @@ -60,10 +60,44 @@ for e in _i["semester"]["slots"]: if "room" in _e[dayname].keys(): sem["slots"][e][dayname]["room"]=_e[dayname]["room"] +#### Load events +events={} +for e in _i["events"]: + _e=_i["events"][e] + events[e]={ + "type": _e["type"], + "name": _e["name"], + "date": parse_date(_e["date"]), + } + events[e]["hidden"]=_e["hidden"] if "hidden" in _e.keys() else False + events[e]["who"]=_e["who"] if "who" in _e.keys() else None + events[e]["start"]=parse_time(_e["start"]) if "start" in _e.keys() else None + events[e]["end"]=parse_time(_e["end"]) if "end" in _e.keys() else None + events[e]["room"]=_e["room"] if "room" in _e.keys() else None + events[e]["weekly"]=_e["weekly"] if "weekly" in _e.keys() else False + if _e["type"] in sem["slots"].keys(): + dayname=getdayname(events[e]["date"]) + if events[e]["start"] is None: + events[e]["start"] = sem["slots"][_e["type"]][dayname]["start"] + if events[e]["end"] is None: + events[e]["end"] = sem["slots"][_e["type"]][dayname]["end"] + if events[e]["room"] is None: + events[e]["room"] = sem["slots"][_e["type"]][dayname]["room"] + #### Gen semester calendar d=getmonday(sem["start"]) w=getweek(d) while d<sem["end"]: - + t = PrettyTable() + t.field_names = ["Week "+str(w), "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"] + t.add_row(["", + formatevents(getnextdayn(d, 0)), + formatevents(getnextdayn(d, 1)), + formatevents(getnextdayn(d, 2)), + formatevents(getnextdayn(d, 3)), + formatevents(getnextdayn(d, 4))]) + print(t) d=getnextmonday(d) w+=1 + if d<sem["end"]: + print("") |
