summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Guégan <manzerbredes@mailbox.org>2025-07-26 18:23:35 +0200
committerLoïc Guégan <manzerbredes@mailbox.org>2025-07-26 18:23:35 +0200
commitb3ed0d7b341e19f536b8c3ef12daae4cbf2adf25 (patch)
tree55f109373a27de645b91a650f1fe945733f01658
parent99bb198d050d913b5e5fcf65c4d67d5dbf5edbce (diff)
Minor changes
-rw-r--r--infos2.yaml7
-rwxr-xr-xmain2.py68
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"
diff --git a/main2.py b/main2.py
index 41580fe..9651aad 100755
--- a/main2.py
+++ b/main2.py
@@ -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("")