From 40fde2445cfc170b975ae10c893d36fc3e5b1c46 Mon Sep 17 00:00:00 2001 From: paulmart-n Date: Wed, 29 Nov 2023 15:04:28 +0100 Subject: [PATCH] Mensa Integration --- dualisauth.py | 1 - parseICAL.py | 24 ++++++++++++++++++++++++ requirements.txt | 17 +++++++++-------- templates/plan.html | 5 +++++ 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/dualisauth.py b/dualisauth.py index 396dc7e..feebdc5 100644 --- a/dualisauth.py +++ b/dualisauth.py @@ -55,7 +55,6 @@ def logOut(token: int, cookie: str): headers=headers, data={}) - def checkLifetime(timecode: float): if time.time() - timecode > 1800: return False diff --git a/parseICAL.py b/parseICAL.py index 96bc6b4..fc1e48b 100644 --- a/parseICAL.py +++ b/parseICAL.py @@ -1,6 +1,8 @@ import icalendar import datetime +import requests import recurring_ical_events +import json def getWeek(weekstart: datetime, file: str, showsat: bool): @@ -53,10 +55,32 @@ def daylist(weekstart: datetime, showsat: bool): else: r = 5 for i in range(r): + essen = getMeals(weekday) dayl += [{ "day": weekday.day, "short": shortnames[i], "long": longnames[i], + "mensa": essen }] weekday += datetime.timedelta(days=1) return dayl + + +def getMeals(day: datetime): + if day.day < 10: + tag = "0" + str(day.day) + else: + tag = str(day.day) + day = str(day.year) + "-" + str(day.month) + "-" + tag + url = "https://dh-api.paulmartin.cloud/plans/" + day + "?canteens=erzberger" + response = requests.request("GET", url) + response = response.content + jres = json.loads(response.decode("utf-8")) + essen = [] + try: + num = len(jres["data"][0]["lines"]) + for i in range(num): + essen += [jres["data"][0]["lines"][i]["meals"][0]["name"]] + except KeyError: + essen = ["Tag nicht (mehr) verfügbar"] + return essen diff --git a/requirements.txt b/requirements.txt index a7ce9e4..8b4e38f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,9 @@ -beautifulsoup4==4.10.0 -Flask==3.0.0 -Flask_Login==0.6.3 -flask_sqlalchemy==3.1.1 -icalendar==5.0.11 -recurring_ical_events==2.1.1 -Requests==2.31.0 -Werkzeug==3.0.1 +beautifulsoup4 +Flask +Flask_Login +flask_sqlalchemy +icalendar +recurring_ical_events +Requests +talisman +Werkzeug diff --git a/templates/plan.html b/templates/plan.html index 9648f60..25a8ba2 100644 --- a/templates/plan.html +++ b/templates/plan.html @@ -28,6 +28,11 @@

{{ eventdays[e]["day"] }}

{{ eventdays[e]["long"] }}

+
+ {% for n in eventdays [e]["mensa"] %} +

{{ n }}

+ {% endfor %} +
{% for i in events %}