Plan + Tests
This commit is contained in:
@ -2,15 +2,18 @@ import icalendar
|
||||
import datetime
|
||||
import recurring_ical_events
|
||||
from fetchMENSA import getMeals
|
||||
import pytz
|
||||
|
||||
shortnames = ["mon", "tue", "wed", "thu", "fri", "sat"]
|
||||
longnames = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
|
||||
months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober",
|
||||
"November", "Dezember"]
|
||||
|
||||
|
||||
def getWeek(weekstart: datetime, file: str, showsat: bool):
|
||||
"""
|
||||
Liefert alle Events einer Woche zurück.
|
||||
Wochenstart wird automatisch auf den Montag der Woche gelegt.
|
||||
Liefert alle Events einer Woche zurück. \n
|
||||
Wochenstart wird automatisch auf den Montag der Woche gelegt. \n
|
||||
:param weekstart:
|
||||
:param file:
|
||||
:param showsat:
|
||||
@ -20,16 +23,30 @@ def getWeek(weekstart: datetime, file: str, showsat: bool):
|
||||
start_date = datetime.date.today()
|
||||
else:
|
||||
start_date = weekstart
|
||||
nextw = start_date + datetime.timedelta(weeks=1)
|
||||
prevw = start_date - datetime.timedelta(weeks=1)
|
||||
start_date -= datetime.timedelta(days=start_date.weekday() % 7)
|
||||
end_date = start_date + datetime.timedelta(days=7)
|
||||
end_date = start_date + datetime.timedelta(days=6)
|
||||
mon = months[start_date.month - 1]
|
||||
if start_date.month != end_date.month:
|
||||
if start_date.year != end_date.year:
|
||||
mon += " " + str(start_date.year) + " | " + months[end_date.month - 1]
|
||||
else:
|
||||
mon += " | " + months[end_date.month-1]
|
||||
|
||||
mon += " " + str(end_date.year)
|
||||
with open("calendars/" + file) as f:
|
||||
calendar = icalendar.Calendar.from_ical(f.read())
|
||||
events = recurring_ical_events.of(calendar).between(start_date, end_date)
|
||||
eventl = []
|
||||
for event in events:
|
||||
estart = event["DTSTART"].dt
|
||||
if str(estart.tzinfo) != "Europe/Berlin":
|
||||
estart = estart.astimezone(pytz.timezone("Europe/Berlin"))
|
||||
formstart = str(estart.hour) + ":" + str(estart.minute)
|
||||
eend = event["DTEND"].dt
|
||||
if str(eend.tzinfo) != "Europe/Berlin":
|
||||
eend = eend.astimezone(pytz.timezone("Europe/Berlin"))
|
||||
formend = str(eend.hour) + ":" + str(eend.minute)
|
||||
forml = [formstart, formend]
|
||||
for i in range(2):
|
||||
@ -50,7 +67,7 @@ def getWeek(weekstart: datetime, file: str, showsat: bool):
|
||||
"day": estart.day
|
||||
}
|
||||
eventl += [eventdict]
|
||||
return eventl, daylist(start_date, showsat)
|
||||
return eventl, daylist(start_date, showsat), prevw, nextw, mon
|
||||
|
||||
|
||||
def daylist(weekstart: datetime, showsat: bool):
|
||||
|
||||
Reference in New Issue
Block a user