125 lines
5.0 KiB
Python
Executable File
125 lines
5.0 KiB
Python
Executable File
#!/usr/bin/python
|
|
import urllib.request
|
|
from bs4 import BeautifulSoup
|
|
import datetime
|
|
|
|
days = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
|
|
|
|
def suppe(url):
|
|
page = urllib.request.urlopen(url).read()
|
|
return BeautifulSoup(page, "html.parser")
|
|
|
|
# bistros
|
|
def sbar():
|
|
return str(suppe("https://sbar-greifswald.de").find('table'))
|
|
|
|
def grangusto():
|
|
imglink = suppe("https://gran-gusto.de/wochenmenue-kiga/").find("a", class_="entire-slide-link")["href"]
|
|
return f'<img width=100% src={imglink}>'
|
|
|
|
def sternwarte():
|
|
fullsupp = suppe("https://www.pommerscher-diakonieverein.de/produkte-dienstleistungen/gastronomie-hotellerie/bio-bistro-alte-sternwarte/")
|
|
menu = fullsupp.find("div", class_="ce-week-menu")
|
|
menu.ul.clear()
|
|
for n, d in enumerate(menu.find_all("div", class_='tab-pane')):
|
|
d.div.div.div.replace_with(fullsupp.new_tag("h3"))
|
|
d.div.div.h3.string = days[n]
|
|
for i in menu.find_all("img"):
|
|
i['src'] = ""
|
|
i['height'] = 0
|
|
i['width'] = 0
|
|
for b in menu.find_all("br"):
|
|
b.name = ""
|
|
return str(menu)
|
|
|
|
def lichtblick():
|
|
fullsupp = suppe("https://www.pommerscher-diakonieverein.de/produkte-dienstleistungen/gastronomie-hotellerie/lichtblick-cafe-und-restaurant")
|
|
menu = fullsupp.find("div", class_="ce-week-menu")
|
|
menu.ul.clear()
|
|
for n, d in enumerate(menu.find_all("div", class_='tab-pane')):
|
|
d.div.div.div.replace_with(fullsupp.new_tag("h3"))
|
|
d.div.div.h3.string = days[n]
|
|
for i in menu.find_all("img"):
|
|
i['src'] = ""
|
|
i['height'] = 0
|
|
i['width'] = 0
|
|
for b in menu.find_all("br"):
|
|
b.name = ""
|
|
return str(menu)
|
|
|
|
def cafekarsten():
|
|
return "Derzeit geschlossen" # TODO remove if comes online again
|
|
menu = suppe("https://cafekarsten.de/").find("div", class_="lg:grid-cols-2")
|
|
menu.find("img")['src'] = ""
|
|
return str(menu)
|
|
|
|
def tierpark():
|
|
seite = suppe("https://www.tierpark-greifswald.de/tierpark-cafe.html").find("div", id="tierpark-cafe")
|
|
return str(list(seite.children)[1]) # TODO remove after they open again
|
|
return str(list(seite.children)[9])
|
|
|
|
def ipp():
|
|
return str(suppe("https://www.ipp-kantine.de/").find("div", class_="row"))
|
|
|
|
def malanders():
|
|
return str(suppe("https://mal-anders-greifswald.dipago.de/").find("div", id="dP_sidebar-area"))
|
|
|
|
def pommerngruen():
|
|
fullsupp = suppe("https://www.pommerscher-diakonieverein.de/produkte-dienstleistungen/gastronomie-hotellerie/pommerngruen-naturkostladen-bio-imbiss")
|
|
menu = fullsupp.find("div", class_="ce-week-menu")
|
|
menu.ul.clear()
|
|
for n, d in enumerate(menu.find_all("div", class_='tab-pane')):
|
|
d.div.div.div.replace_with(fullsupp.new_tag("h3"))
|
|
d.div.div.h3.string = days[n]
|
|
for i in menu.find_all("img"):
|
|
i['src'] = ""
|
|
i['height'] = 0
|
|
i['width'] = 0
|
|
for b in menu.find_all("br"):
|
|
b.name = ""
|
|
return str(menu)
|
|
|
|
def kuba():
|
|
return str(suppe("https://www.kuba-hgw.de/mittagstisch/").find("div", class_="row"))
|
|
|
|
bistros = {
|
|
"S-Sbar": {"f": sbar, "url": "https://sbar-greifswald.de"},
|
|
"Gran Gusto": {"f": grangusto, "url": "https://gran-gusto.de/wochenmenue-kiga"},
|
|
#"Bio-Bistro Alte Sternwarte": {"f": sternwarte, "url": "https://www.pommerscher-diakonieverein.de/produkte-dienstleistungen/gastronomie-hotellerie/bio-bistro-alte-sternwarte/"},
|
|
"Bistro Lichtblick": {"f": lichtblick, "url": "https://www.pommerscher-diakonieverein.de/produkte-dienstleistungen/gastronomie-hotellerie/lichtblick-cafe-und-restaurant"},
|
|
"Cafe Karsten": {"f": cafekarsten, "url": "https://cafekarsten.de/"},
|
|
"Tierparkcafe": {"f": tierpark, "url": "https://www.tierpark-greifswald.de/tierpark-cafe.html"},
|
|
"IPP-Kantine": {"f": ipp, "url": "https://ipp-kantine.de"},
|
|
"Mal Anders": {"f": malanders, "url": "https://mal-anders-greifswald.dipago.de"},
|
|
"Pommerngrün": {"f": pommerngruen, "url": "https://www.pommerscher-diakonieverein.de/produkte-dienstleistungen/gastronomie-hotellerie/pommerngruen-naturkostladen-bio-imbiss"},
|
|
"KuBa": {"f": kuba, "url": "https://www.kuba-hgw.de/mittagstisch/"},
|
|
}
|
|
|
|
with open("index.html", "w") as f:
|
|
f.write("""<html>
|
|
<head>
|
|
</head>
|
|
<body id='top'>
|
|
""")
|
|
|
|
f.write(f"zuletzt aktualisiert: {datetime.datetime.now().strftime('%d.%m.%Y %H:%M')}<br>")
|
|
f.write("<list>")
|
|
for b in bistros:
|
|
f.write(f"<ul><a href='#{b}'>{b}</a>: <a href='{bistros[b]['url']}'>Webseite</a></ul>")
|
|
f.write("\n")
|
|
f.write("</list>\n<br><br>\n")
|
|
|
|
for b in bistros:
|
|
f.write(f"<h1><a id='{b}'></a>{b}</h1>\n")
|
|
try:
|
|
f.write(bistros[b]['f']())
|
|
f.write("\n")
|
|
except Exception as e:
|
|
print(f"Speiseplan: Aktualisierung von {b} fehlgeschlagen mit {e}")
|
|
f.write("fehlgeschlagen<br>\n")
|
|
f.write("<p align=right><a href=#top>zurück nach oben</a></p>\n")
|
|
f.write("<br><br>\n")
|
|
|
|
|
|
f.write("""</body></html>\n""")
|