diff options
Diffstat (limited to 'main2.py')
| -rwxr-xr-x | main2.py | 68 |
1 files changed, 51 insertions, 17 deletions
@@ -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("") |
