Timeout-Check + MERGE-Prep

This commit is contained in:
2023-12-11 14:37:23 +01:00
parent 081cb4aaa7
commit 6c143b5817
12 changed files with 249 additions and 23 deletions

View File

@ -8,6 +8,13 @@ nomeal = 'Essen nicht (mehr) verfügbar'
def getMeals(day: datetime):
"""
Liefert alle Mahlzeiten eines Tages. \n
Befinden sie sich schon in der Datenbank, werden diese zurückgegeben. \n
Wenn nicht, wird getMealsFromAPI() aufgerufen. \n
:param day:
:return [Name1, Name2, ...]:
"""
day = formatDay(day)
essen = []
query = Meals.query.filter_by(date=day).all()
@ -20,6 +27,14 @@ def getMeals(day: datetime):
def getMealsFromAPI(day: str, dbentry: bool = False):
"""
Fragt die Mensa-API nach den Mahlzeiten eines Tages ab. \n
Wenn dbentry: Schreibt die Ergebnisse in die Datenbank. \n
TODO: Andere Mensen berücksichtigen.
:param day:
:param dbentry:
:return [Name1, Name2, ...]:
"""
url = "https://dh-api.paulmartin.cloud/plans/" + day + "?canteens=erzberger"
response = requests.request("GET", url)
response = response.content
@ -64,6 +79,11 @@ def getMealsFromAPI(day: str, dbentry: bool = False):
def pricetofloat(price: str):
"""
Konvertiert den Preis-String der Mensa-API zu einem Python-Float.
:param price:
:return float:
"""
price = price[:-2]
price = price.replace(",", ".")
try:
@ -73,6 +93,12 @@ def pricetofloat(price: str):
def formatDay(day: datetime):
"""
Füllt ein Datum mit Nullen auf. \n
"2023-1-1""2023-01-01".
:param day:
:return str:
"""
if day.day < 10:
tag = "0" + str(day.day)
else:
@ -83,6 +109,10 @@ def formatDay(day: datetime):
@scheduler.task('cron', id="refreshMeals", hour='8-11', day_of_week='*', minute='15', week='*', second='30')
def refreshMeals():
"""
Aktualisiert immer vormittags alle Mahlzeiten in der Datenbank. \n
Datenbankeinträge werden ersetzt, wenn die API andere Mahlzeiten liefert.
"""
print("Aktualisiere Essenspläne...\n")
with scheduler.app.app_context():
table = Meals.query.all()