mirror of
https://codeberg.org/herrthees/ODW-Abfallkalender-Bot-Demo.git
synced 2025-08-02 08:37:34 +00:00
init
This commit is contained in:
parent
8532ba2a3a
commit
d9bd224a55
1 changed files with 60 additions and 0 deletions
60
abfallkalender.py
Normal file
60
abfallkalender.py
Normal file
|
@ -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)
|
Loading…
Add table
Add a link
Reference in a new issue