summaryrefslogtreecommitdiff
path: root/main2.py
diff options
context:
space:
mode:
Diffstat (limited to 'main2.py')
-rwxr-xr-xmain2.py68
1 files changed, 51 insertions, 17 deletions
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("")