mirror of
https://github.com/traberph/mensa-check.git
synced 2026-10-06 18:24:45 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f4ec345fb |
@@ -0,0 +1 @@
|
||||
.venv
|
||||
@@ -2,3 +2,4 @@ fastapi[standard]==0.114.0
|
||||
Jinja2==3.1.4
|
||||
requests==2.32.3
|
||||
cachetools==5.5.0
|
||||
beautifulsoup4==4.12.3
|
||||
+18
-6
@@ -2,8 +2,10 @@ from fastapi import FastAPI
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.responses import HTMLResponse
|
||||
from fastapi.templating import Jinja2Templates
|
||||
import requests
|
||||
from cachetools import cached, TTLCache
|
||||
from bs4 import BeautifulSoup
|
||||
import requests
|
||||
|
||||
|
||||
cache = TTLCache(maxsize=1, ttl=3600)
|
||||
app = FastAPI()
|
||||
@@ -12,13 +14,23 @@ templates = Jinja2Templates(directory="template")
|
||||
@cached(cache)
|
||||
def checkMensa():
|
||||
print("Checking Mensa")
|
||||
|
||||
url = 'https://seezeit.com/essen/speiseplaene/mensa-giessberg/'
|
||||
r = requests.get(url)
|
||||
text = r.text
|
||||
pos = text.find('Spätzle')
|
||||
if pos != -1:
|
||||
cut = r.text[r.text.find('Spätzle'):r.text.find('Spätzle')+50]
|
||||
ingredients = cut.split('(')[1].split(')')[0].split(',')
|
||||
soup = BeautifulSoup(r.text, 'html.parser')
|
||||
|
||||
today = soup.find('a', class_='heute')['rel'][0]
|
||||
today_menu = soup.find('div', id=f'tab{today}')
|
||||
meals = today_menu.find_all('div', class_='title')
|
||||
|
||||
spaetzle = None
|
||||
for m in meals:
|
||||
if "Spätzle" in m.text:
|
||||
spaetzle = m
|
||||
break
|
||||
|
||||
if spaetzle is not None:
|
||||
ingredients = spaetzle.find('sup').text
|
||||
if '28' in ingredients:
|
||||
answer = "Spätzle with egg today"
|
||||
color = "green"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<title>{{text}} - {{emoji}}</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: {{ color}};
|
||||
background-color: {{ color }};
|
||||
color: #f0f0f0;
|
||||
font-family: Roboto,
|
||||
sans-serif;
|
||||
@@ -40,7 +40,9 @@
|
||||
color: #f0f0f0;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
span {
|
||||
background-color: salmon;
|
||||
padding: 5px;
|
||||
@@ -48,6 +50,7 @@
|
||||
border-radius: 5px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
@@ -68,8 +71,10 @@
|
||||
<a href="https://kubernetes.io/de/"><span>k8s</span></a>
|
||||
<a href="https://fastapi.tiangolo.com/"><span>fastapi</span></a>
|
||||
<a href="https://github.com/traberph/mensa-check"><span>github</span></a>
|
||||
<a href="https://seezeit.com/essen/speiseplaene/mensa-giessberg/"><span>seezeit</span></a></p>
|
||||
<p>Imprint: <a href="https://github.com/traberph">Philipp Traber</a></p>
|
||||
<a href="https://seezeit.com/essen/speiseplaene/mensa-giessberg/"><span>seezeit</span></a>
|
||||
</p>
|
||||
<p>Imprint: <a href="https://github.com/traberph">Philipp Traber</a>; Legal Notice: Not associated with seezeit
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user