summaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rwxr-xr-xmain.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/main.py b/main.py
new file mode 100755
index 0000000..2667513
--- /dev/null
+++ b/main.py
@@ -0,0 +1,86 @@
+#!./env/bin/python
+
+import yaml, textwrap
+from prettytable import PrettyTable
+from datetime import datetime, timedelta
+
+with open("infos.yaml", "r") as f:
+ i=yaml.safe_load(f)
+
+def parse_date(d):
+ return datetime.strptime(d, "%d/%m/%Y")
+def getmonday(d):
+ return d - timedelta(days=d.weekday())
+def getnextmonday(d):
+ return getmonday(d)+timedelta(days=7)
+def getnextdayn(d,n):
+ return (d+timedelta(days=n))
+def formatday(d):
+ return d.strftime("%d.%m")
+def getassign(d):
+ val=""
+ for a in i["assigments"]:
+ start=parse_date(i["assigments"][a]["start"])
+ end=parse_date(i["assigments"][a]["end"])
+ if d>=start and d<=end:
+ if len(val)>0:
+ val+="/"
+ val+=str(a)
+ return val
+def getlecture(d):
+ for l in i["lectures"]:
+ date=parse_date(i["lectures"][l]["date"])
+ if d==date:
+ lecturer=""
+ if i["output"]["show_lecturers"]:
+ lecturer="\n ("+i["lectures"][l]["who"]+")"
+ return textwrap.fill(i["lectures"][l]["name"]+lecturer,15)
+ return ""
+def getevents(d):
+ val=""
+ for e in i["events"]:
+ date=parse_date(i["events"][e]["date"])
+ if d==date:
+ if len(val)>0:
+ val+=","
+ val+=str(i["events"][e]["name"])
+ return textwrap.fill(val,15)
+
+sstart=parse_date(i["semester"]["start"])
+send=parse_date(i["semester"]["end"])
+d=sstart
+w=i["semester"]["week"]
+
+while d <= send:
+ t = PrettyTable()
+ t.field_names = ["Week "+str(w), "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
+ if i["output"]["show_dates"]:
+ t.add_row(["Date",
+ formatday(getnextdayn(d, 0)),
+ formatday(getnextdayn(d, 1)),
+ formatday(getnextdayn(d, 2)),
+ formatday(getnextdayn(d, 3)),
+ formatday(getnextdayn(d, 4))],divider=True)
+ t.add_row(["Assigment",
+ getassign(getnextdayn(d, 0)),
+ getassign(getnextdayn(d, 1)),
+ getassign(getnextdayn(d, 2)),
+ getassign(getnextdayn(d, 3)),
+ getassign(getnextdayn(d, 4))],divider=True)
+ t.add_row(["Lecture",
+ getlecture(getnextdayn(d, 0)),
+ getlecture(getnextdayn(d, 1)),
+ getlecture(getnextdayn(d, 2)),
+ getlecture(getnextdayn(d, 3)),
+ getlecture(getnextdayn(d, 4))],divider=True)
+ if i["output"]["show_events"]:
+ t.add_row(["Other",
+ getevents(getnextdayn(d, 0)),
+ getevents(getnextdayn(d, 1)),
+ getevents(getnextdayn(d, 2)),
+ getevents(getnextdayn(d, 3)),
+ getevents(getnextdayn(d, 4))],divider=True)
+ print(t)
+ print()
+ d=getnextmonday(d)
+ w+=1