#!/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(): return f'' 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(""" """) f.write(f"zuletzt aktualisiert: {datetime.datetime.now().strftime('%d.%m.%Y %H:%M')}
") f.write("") for b in bistros: f.write(f"") f.write("\n") f.write("\n

\n") for b in bistros: f.write(f"

{b}

\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
\n") f.write("

zurück nach oben

\n") f.write("

\n") f.write("""\n""")