nemesis 2 years ago
parent
commit
ad0087e8cb
  1. 4
      asmodee.ini.sample
  2. 67
      asmodee.py

4
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

67
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=<NOM>&fields=codesPostaux,population&format=json'
commune_url = 'https://geo.api.gouv.fr/communes?<TYPE>=<NOM>&fields=nom,code,codesPostaux,population&format=json'
eau_url = 'https://hubeau.eaufrance.fr/api/vbeta/qualite_eau_potable/resultats_dis?<TYPE>=<NOM>&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("<NOM>", ville)
cette_commune = None
if (ville.isnumeric()):
cette_commune = commune_url.replace("<NOM>", ville).replace("<TYPE>", "codePostal")
else:
cette_commune = commune_url.replace("<NOM>", ville).replace("<TYPE>", "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 <nom de la commune", sender)
await msg(room, "!commune <nom de la commune OU code postal de la 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("<NOM>", ville).replace("<TYPE>", "code_commune")
else:
cette_commune = eau_url.replace("<NOM>", ville).replace("<TYPE>", "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 <nom de la commune OU code INSEE de la commune>", 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)

Loading…
Cancel
Save