From d9bd224a55bca69a20ba098de3901b02a8cd96b7 Mon Sep 17 00:00:00 2001 From: Ralf Thees Date: Fri, 15 Jul 2022 01:23:31 +0200 Subject: [PATCH] init --- abfallkalender.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 abfallkalender.py diff --git a/abfallkalender.py b/abfallkalender.py new file mode 100644 index 0000000..0b87c5d --- /dev/null +++ b/abfallkalender.py @@ -0,0 +1,60 @@ +import locale +from datetime import datetime, timedelta +from random import choice + +import requests + +# Morgiges Datum für API-Abfrage und der Name des Wochentags in Deutsch +locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8') +utcMorgen = datetime.today()+timedelta(days=1) +morgen = utcMorgen.strftime('%Y-%m-%d') +morgenWochentag = utcMorgen.strftime('%A') + +# Gimmick: Eine Liste mit Sätzen +# für die Einleitung der Abfallkalender-Ausgabe +introSaetze = [ + 'Leute, denkt morgen an die Müllabfuhr: ', + 'Morgen ist '+ morgenWochentag+', für die Müllabfuhr in Würzburg heißt das: ', + 'Der Abfallkalender für morgen, '+ morgenWochentag+': ', + 'Wer ist am '+ morgenWochentag+' beim Müll mit was dran?' +] + +# Variablen initialisieren +ausgabe = '' +stadtteil={} +stadtteilListe = set + +# Daten für morgen vom Open-Data-Portal holen und in JSON umwandeln +# Siehe https://opendata.wuerzburg.de/explore/dataset/abfallkalender-wuerzburg/information/ +abfallkalenderApiUrl='https://opendata.wuerzburg.de/api/records/1.0/search/?dataset=abfallkalender-wuerzburg&q=start='+morgen+'&rows=99' +apiAntwort = requests.get(abfallkalenderApiUrl) +abfallkalender = apiAntwort.json() + +# Gibt es Daten für den morgigen Tag (Samstag und Sonntag nicht) +if len(abfallkalender['records']) > 0: + + # Daten neu struktierien: + # Dictionary mit Stadtteilname als Schlüssel und einer Liste der Abfallart, + # die morgen dort geholt wird + for orte in abfallkalender['records']: + try: + stadtteil[orte['fields']['stadtteil_name']].append(orte['fields']['kategorie']) + except KeyError: + stadtteil[orte['fields']['stadtteil_name']]=[] + stadtteil[orte['fields']['stadtteil_name']].append(orte['fields']['kategorie']) + + # Ausgabe zusammenbasteln: + for (aktuellerStadtteil,abfallart) in stadtteil.items(): + ausgabe += aktuellerStadtteil+': ' + # mehr als eine Abfallart? Dann mit Kommans und Und verknüfpfen + if len(abfallart)>1: + ausgabe+=', '.join(abfallart[:-1])+' und '+abfallart[-1]+"\n" + # sonst die eine Abfallart anhängen + else: + ausgabe+=abfallart[0] + + # Zufällig einen Einleitungssatz auswählen und der Ausgabe voranstellen. + ausgabe=choice(introSaetze)+'\n\n'+ausgabe + + # Die Ausgabe + print (ausgabe) \ No newline at end of file