optimize mensa async

This commit is contained in:
2024-04-09 11:04:18 +02:00
parent 0d31d84d48
commit ccb088e36d
7 changed files with 66 additions and 48 deletions

View File

@ -1,3 +1,6 @@
import time
import asyncio
import icalendar
import datetime
import recurring_ical_events
@ -10,7 +13,7 @@ months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August"
"November", "Dezember"]
def getWeek(weekstart: datetime, file: str, showsat: bool):
async def getWeek(weekstart: datetime, file: str, showsat: bool):
"""
Liefert alle Events einer Woche zurück. \n
Wochenstart wird automatisch auf den Montag der Woche gelegt. \n
@ -67,10 +70,10 @@ def getWeek(weekstart: datetime, file: str, showsat: bool):
"day": estart.day
}
eventl += [eventdict]
return eventl, daylist(start_date, showsat), prevw, nextw, mon
return eventl, await daylist(start_date, showsat), prevw, nextw, mon
def daylist(weekstart: datetime, showsat: bool):
async def daylist(weekstart: datetime, showsat: bool):
"""
Gibt die Essen einer Woche zurück.
:param weekstart:
@ -83,15 +86,19 @@ def daylist(weekstart: datetime, showsat: bool):
r = 6
else:
r = 5
essen = []
for i in range(r):
essen = getMeals(weekday)
essen += [getMeals(weekday)]
dayl += [{
"day": weekday.day,
"short": shortnames[i],
"long": longnames[i],
"mensa": essen
"mensa": i
}]
weekday += datetime.timedelta(days=1)
essenl = await asyncio.gather(*essen, return_exceptions=True)
for day in range(r):
dayl[day]["mensa"] = essenl[day]
return dayl