From ad0087e8cb330bba1d57af1858f2fdb9352dca48 Mon Sep 17 00:00:00 2001 From: nemesis Date: Fri, 23 Sep 2022 22:33:15 +0200 Subject: [PATCH] eau --- asmodee.ini.sample | 4 +-- asmodee.py | 67 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/asmodee.ini.sample b/asmodee.ini.sample index 601f522..9b902df 100644 --- a/asmodee.ini.sample +++ b/asmodee.ini.sample @@ -5,8 +5,8 @@ server = https://instance.tld admin = @mxid:intance.tld [MOD] -# liste = roll,quote,biere,stats,liste,horloge,carte,card,cristal,welcome,salut,jdr,gens,va,salon,kick,mails,titre,invidious,ecowatt,commune -liste = roll,quote,biere,stats,liste,horloge,carte,card,cristal,welcome,salut,jdr,gens,va,salon,kick,mails,titre,invidious,ecowatt,commune +# liste = roll,quote,biere,stats,liste,horloge,carte,card,cristal,welcome,salut,jdr,gens,va,salon,kick,mails,titre,invidious,ecowatt,commune,eau +liste = roll,quote,biere,stats,liste,horloge,carte,card,cristal,welcome,salut,jdr,gens,va,salon,kick,mails,titre,invidious,ecowatt,commune,eau [MAIL] malt = 0 diff --git a/asmodee.py b/asmodee.py index 6584f18..e10ddea 100755 --- a/asmodee.py +++ b/asmodee.py @@ -28,7 +28,9 @@ USERNAME = "" oauth = None #Appels RTE #ecowatt_url = 'https://digital.iservices.rte-france.com/open_api/ecowatt/v4/sandbox/signals' ecowatt_url = 'https://digital.iservices.rte-france.com/open_api/ecowatt/v4/signals' -commune_url = 'https://geo.api.gouv.fr/communes?nom=&fields=codesPostaux,population&format=json' +commune_url = 'https://geo.api.gouv.fr/communes?=&fields=nom,code,codesPostaux,population&format=json' +eau_url = 'https://hubeau.eaufrance.fr/api/vbeta/qualite_eau_potable/resultats_dis?=&size=1' + wattobj = None # Listes et dictionnaires @@ -1679,22 +1681,71 @@ async def commune(room, message): mess = "" if (len(args) > 0): ville = " ".join(args) - cette_commune = commune_url.replace("", ville) + cette_commune = None + if (ville.isnumeric()): + cette_commune = commune_url.replace("", ville).replace("", "codePostal") + else: + cette_commune = commune_url.replace("", ville).replace("", "nom") result = oauth.get(cette_commune) villes = json.loads(result.text) if (len(villes) > 0): try: cite = villes[0] - code = cite["codesPostaux"][0] + codePoste = cite["codesPostaux"][0] pop = cite["population"] - await msg(room, ville + ". CP : " + code + ". Population : " + str(pop), sender) + insee = cite["code"] + nom = cite["nom"] + await msg(room, nom + ". CP : " + codePoste + ". Code INSEE : " + insee + ". Population : " + str(pop), sender) except: await msg(room, str(villes), sender) else: await msg(room, "Commune non trouvée", sender) else: - await msg(room, "!commune ", sender) +async def eau(room, message): + global modules + try: + rmod = modules[room.room_id, 'eau'] + except: + modules[room.room_id, 'eau'] = False + if (modules[room.room_id, 'eau']): + args = getMessage(message).split() + sender = getUser(message) + args.pop(0) + mess = "" + if (len(args) > 0): + ville = " ".join(args) + cette_commune = None + if (ville.isnumeric()): + cette_commune = eau_url.replace("", ville).replace("", "code_commune") + else: + cette_commune = eau_url.replace("", ville).replace("", "nom_commune") + result = oauth.get(cette_commune) + eaux = json.loads(result.text) + if (len(eaux["data"]) > 0): + try: + eau = eaux["data"][0] + nom = eau["nom_commune"] + date = eau["date_prelevement"][0:10] + res = eau["resultat_alphanumerique"] + unite = str(eau["libelle_unite"]) + if (unite == "SANS OBJET"): + unite = "" + limite = "(" + str(eau["limite_qualite_parametre"]) + ")" + if (limite == "(None)"): + limite = "" + param = eau["libelle_parametre"] + " " + limite + concl = eau["conclusion_conformite_prelevement"] + distrib = eau["nom_distributeur"] + await msg(room, "Prélèvement à " + nom + " le " + date + ". \nRésultat : " + res + unite + " / " + param + ".\n" + concl + "\n" + distrib, sender) + except: + await msg(room, str(eaux), sender) + else: + await msg(room, "Commune non trouvée", sender) + else: + await msg(room, "!eau ", sender) + async def help(room, message): # Aide en message privé await help_center(room,message,"help",True) @@ -1799,6 +1850,12 @@ async def callCommune(room, message): if match.is_not_from_this_bot() and match.prefix() and match.command("commune"): await commune(room, message) +@bot.listener.on_message_event +async def callEau(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("eau"): + await eau(room, message) + @bot.listener.on_message_event async def callEcowatt(room, message): match = botlib.MessageMatch(room, message, bot, PREFIX)