From eaf97a3799e07e2f8fd0a44fed09678119cd60e6 Mon Sep 17 00:00:00 2001 From: Nemesis Date: Sun, 29 Jul 2018 09:51:59 +0200 Subject: [PATCH] blindage de l'envoi de messages --- asmodee.py | 211 +++++++++++++++++++++++++++-------------------------- 1 file changed, 109 insertions(+), 102 deletions(-) diff --git a/asmodee.py b/asmodee.py index 80542d7..ce81866 100755 --- a/asmodee.py +++ b/asmodee.py @@ -232,6 +232,13 @@ class Parser: #Pour parser la ligne de commande return True return False +def msg(room,msg): + try: + room.send_text(msg) + except: + room.send_text("Impossible d'envoyer le message") + print(msg) + def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les messages privés avec l'utilisateur global bot nick = "" @@ -257,7 +264,7 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message # if alias in salon.aliases: # print("trouvé : " + cle) # print(salon.aliases) - # salon.send_text("gagné") + # msg(salon,"gagné") # return salon # else: # print(salon.aliases) @@ -279,7 +286,7 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message except: print("Impossible de creer ou joindre " + alias) return None - #salon.send_text("nouvelle conversation") + #msg(salon,"nouvelle conversation") # TODO vérifier la présence du sender dans la liste des membres de ce salon et réinviter si besoin try: salon.invite_user(event['sender']) @@ -312,7 +319,7 @@ def card(room, event): # Tirer une carte du paquet sans la retirer except: modules[room.room_id, 'card'] = False if (modules[room.room_id, 'card']): - room.send_text(cartes_base[random.randrange(0,len(cartes_base))]) + msg(room,cartes_base[random.randrange(0,len(cartes_base))]) def carte(room, event): # Tirer une carte du paquet en la retirant ensuite global modules @@ -325,13 +332,13 @@ def carte(room, event): # Tirer une carte du paquet en la retirant ensuite args = event['content']['body'].split() if (len(args) > 1): cartes=list(cartes_base) - room.send_text("Le paquet est melange") + msg(room,"Le paquet est melange") else: if (len(cartes) < 1): cartes=list(cartes_base) - room.send_text("Le paquet est melange") + msg(room,"Le paquet est melange") i = random.randrange(0,len(cartes)) - room.send_text(cartes[i]) + msg(room,cartes[i]) cartes.pop(i) def help(room, event): # Aide en message privé @@ -346,49 +353,49 @@ def help_center(room,event,name,private): # Aide sur les commandes disponibles salon = verifPMRoom(room,event) if (len(args) > 0): if (re.search("roll", args[0])): - salon.send_text(":roll (+-modifs ou des)\n\n- exemple :roll vr4g3 6d6 - \#g\#r3d6 +2 x3 : lance avec les details 6d6 en relancant les des avec un resultat de 4+ et en gardant les trois meilleurs, puis en retranchant 3d6 sans relancer les 4+ et en gardant tout, enfin ajouter 2. L'operation sera executee trois fois.\n\n- v : details (verbose) du jet\n- n : no add, chaque de est traite separement\n- e : explosif, si un de fait le maximum, on le relance et on additionne\n- z : Star Zars, le premier de est explosif. Mais s'il sort un 1, on retire ce 1 et la plus grande valeur des autres des\n- f : difficulte a atteindre par de avec option n\n- g : nombre de des conserves\n- r : relance si le de a obtenu au moins ce nombre\n- m : Enleve un succes si ce nombre ou moins est atteint\n- s : seuil a atteindre et niveaux de reussites\n- w : lance un wild die avec les autres.") + msg(salon,":roll (+-modifs ou des)\n\n- exemple :roll vr4g3 6d6 - \#g\#r3d6 +2 x3 : lance avec les details 6d6 en relancant les des avec un resultat de 4+ et en gardant les trois meilleurs, puis en retranchant 3d6 sans relancer les 4+ et en gardant tout, enfin ajouter 2. L'operation sera executee trois fois.\n\n- v : details (verbose) du jet\n- n : no add, chaque de est traite separement\n- e : explosif, si un de fait le maximum, on le relance et on additionne\n- z : Star Zars, le premier de est explosif. Mais s'il sort un 1, on retire ce 1 et la plus grande valeur des autres des\n- f : difficulte a atteindre par de avec option n\n- g : nombre de des conserves\n- r : relance si le de a obtenu au moins ce nombre\n- m : Enleve un succes si ce nombre ou moins est atteint\n- s : seuil a atteindre et niveaux de reussites\n- w : lance un wild die avec les autres.") elif (re.search("sw", args[0])): - salon.send_text("- :sw : Lance les des en mode Savage Worlds\nVerbose/Noadd/Explosif/Seuil 4/Niveau de reussite 4/Wild Die d6.") + msg(salon,"- :sw : Lance les des en mode Savage Worlds\nVerbose/Noadd/Explosif/Seuil 4/Niveau de reussite 4/Wild Die d6.") elif (re.search("dom", args[0])): - salon.send_text("- :dom : Lance les dommages en mode Savage Worlds\nVerbose/Explosif/seuil 4/Niveau de reussite 4.") + msg(salon,"- :dom : Lance les dommages en mode Savage Worlds\nVerbose/Explosif/seuil 4/Niveau de reussite 4.") elif (re.search("owod", args[0])): - salon.send_text("- :owod : Lance les des en mode Ancien Monde des Tenebres\nVerbose/Noadd/Difficulte 6/Relance les 10/Les 1 enleve un succes.") + msg(salon,"- :owod : Lance les des en mode Ancien Monde des Tenebres\nVerbose/Noadd/Difficulte 6/Relance les 10/Les 1 enleve un succes.") elif (re.search("wod", args[0])): - salon.send_text("- :wod : Lance les des en mode Nouveau Monde des Tenebres\nVerbose/Noadd/Difficulte 8/Relance les 10.") + msg(salon,"- :wod : Lance les des en mode Nouveau Monde des Tenebres\nVerbose/Noadd/Difficulte 8/Relance les 10.") elif (re.search("ars", args[0])): - salon.send_text("- :ars : Lance les des en mode Ars Magicka : de de tension\nVerbose/Noadd/Sur un 1, on relance et on double.") + msg(salon,"- :ars : Lance les des en mode Ars Magicka : de de tension\nVerbose/Noadd/Sur un 1, on relance et on double.") elif (re.search("des", args[0])): - salon.send_text("- :des : Lance des des de desastre\nVerbose/Noadd/Difficulte 10.") + msg(salon,"- :des : Lance des des de desastre\nVerbose/Noadd/Difficulte 10.") elif (re.search("star", args[0])): - salon.send_text("- :star : Lance des des en mode star wars. Le premier de est explosif. Mais s'il sort un 1, on retire ce 1 et la plus grande valeur des autres des.") + msg(salon,"- :star : Lance des des en mode star wars. Le premier de est explosif. Mais s'il sort un 1, on retire ce 1 et la plus grande valeur des autres des.") elif (re.search("carte", args[0])): - salon.send_text("- !carte : Tire une carte et la retire du paquet\n- !carte m : remelange le paquet.") + msg(salon,"- !carte : Tire une carte et la retire du paquet\n- !carte m : remelange le paquet.") elif (re.search("card", args[0])): - salon.send_text("- !card : tire une carte sans la retirer du paquet.") + msg(salon,"- !card : tire une carte sans la retirer du paquet.") elif (re.search("liste", args[0])): - salon.send_text("- !liste [Nombre d'elements souhaites] : retourne ce nombre d'elements de la liste.") + msg(salon,"- !liste [Nombre d'elements souhaites] : retourne ce nombre d'elements de la liste.") elif (re.search("horloge", args[0])): - salon.send_text("- !horloge : Affiche les horloges\n- !horloge : Crée ou modifie une horloge en lui mettant un niveau (normalement de 0 à 6)\n- !horloge del : Supprime cette horloge.") + msg(salon,"- !horloge : Affiche les horloges\n- !horloge : Crée ou modifie une horloge en lui mettant un niveau (normalement de 0 à 6)\n- !horloge del : Supprime cette horloge.") elif (re.search("last", args[0])): - salon.send_text("- !last : Date de son dernier post\n- !last : Date du dernier post de la personne\n") + msg(salon,"- !last : Date de son dernier post\n- !last : Date du dernier post de la personne\n") elif (re.search("actif", args[0])): - salon.send_text("- !actif : Nombre de ses messages et taille moyenne de ceux ci\n- !actif : Nombre des messages de cette personne et taille moyenne de ceux ci\n") + msg(salon,"- !actif : Nombre de ses messages et taille moyenne de ceux ci\n- !actif : Nombre des messages de cette personne et taille moyenne de ceux ci\n") elif (re.search("quote", args[0])): - salon.send_text("- !quote : Affiche une citation du salon au hasard\n- !quote : Affiche une citation d'une personne du salon au hasard\n- !quote add : : Enregistre une citation\n- !quote list [Personne] : Affiche les citation du salon ou d'une personne du salon en message privé\n- !quote list all : Affiche toutes les citations de tous les salons en message privé\n- !quote del : Supprime la citation avec l'id spécifié") + msg(salon,"- !quote : Affiche une citation du salon au hasard\n- !quote : Affiche une citation d'une personne du salon au hasard\n- !quote add : : Enregistre une citation\n- !quote list [Personne] : Affiche les citation du salon ou d'une personne du salon en message privé\n- !quote list all : Affiche toutes les citations de tous les salons en message privé\n- !quote del : Supprime la citation avec l'id spécifié") elif (re.search("biere", args[0])): - salon.send_text("- !biere : Fournit une boisson du salon au hasard\n- !biere : Fournit une boisson spécifique du salon\n- !biere give [:Nom du Breuvage] : Offre une boisson (spécifique en option) à la personne spécifiée\n- !biere add : : Enregistre une phrase pour ce breuvage\n- !biere list [Nom de Breuvage] : Affiche les phrases des breuvages du salon ou celles d'un breuvage spécifique du salon en message privé\n- !biere list all : Affiche toutes les citations de tous breuvages de tous les salons en message privé\n- !biere del : Supprime la phrase avec l'id spécifié") + msg(salon,"- !biere : Fournit une boisson du salon au hasard\n- !biere : Fournit une boisson spécifique du salon\n- !biere give [:Nom du Breuvage] : Offre une boisson (spécifique en option) à la personne spécifiée\n- !biere add : : Enregistre une phrase pour ce breuvage\n- !biere list [Nom de Breuvage] : Affiche les phrases des breuvages du salon ou celles d'un breuvage spécifique du salon en message privé\n- !biere list all : Affiche toutes les citations de tous breuvages de tous les salons en message privé\n- !biere del : Supprime la phrase avec l'id spécifié") elif (re.search("accueil", args[0])): - salon.send_text("- !accueil : Modifie le message d'accueil avec message. Il sera affiché à tout nouvel arrivant précédé de la mention 'Bienvenue sur le salon XXX, YYY.'") + msg(salon,"- !accueil : Modifie le message d'accueil avec message. Il sera affiché à tout nouvel arrivant précédé de la mention 'Bienvenue sur le salon XXX, YYY.'") elif (re.search("modo", args[0])): - salon.send_text("- !modo : Affiche la liste des modérateurs (ils peuvent gérer le message d'accueil, supprimer des citations ou des boissons, ajouter/retirer des modules, ajouter/retirer des modérateurs)\n- !modo add : Ajoute une personne comme modérateur du salon\n- !modo del : Retire une personne des modérateurs.") + msg(salon,"- !modo : Affiche la liste des modérateurs (ils peuvent gérer le message d'accueil, supprimer des citations ou des boissons, ajouter/retirer des modules, ajouter/retirer des modérateurs)\n- !modo add : Ajoute une personne comme modérateur du salon\n- !modo del : Retire une personne des modérateurs.") elif (re.search("module", args[0])): - salon.send_text("- !module : Affiche la liste des modules actifs sur le salon ainsi que celle des modules disponibles\n- !module add : Active un module sur le salon\n- !modo del : Désactive un module sur le salon.") + msg(salon,"- !module : Affiche la liste des modules actifs sur le salon ainsi que celle des modules disponibles\n- !module add : Active un module sur le salon\n- !modo del : Désactive un module sur le salon.") elif (re.search("cristal", args[0])): - salon.send_text("- !cristal : Réponds à une question posée commençant par Est-ce, Combien, Pourquoi, Quand, Comment, Où et se terminant par un point d'interrogation.") + msg(salon,"- !cristal : Réponds à une question posée commençant par Est-ce, Combien, Pourquoi, Quand, Comment, Où et se terminant par un point d'interrogation.") else: - salon.send_text("A venir") + msg(salon,"A venir") else: - salon.send_text("Commandes disponibles:\n- !card\n- !carte\n- !liste [Nombre d'elements souhaites]\n- !horloge : gestion des horloges PBTA\n- !last : Date de dernier post\n- !actif : Nombre de message et taille moyenne de ceux ci\n- !quote : citations du salon\n- !biere : breuvages du salon\n- !cristal : Posez une question à la boule de cristal.\n- !accueil : Modifie le message d'accueil\n- !modo : Gère les modérateurs du salon\n- !module : Gère les modules actifs sur le salon\n- :roll \n- :sw \n- :dom \n- :wod \n- :owod \n- :ars \n- :des \n- :star \n\n- Pour plus de details, tapez !" + name + " \n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix") + msg(salon,"Commandes disponibles:\n- !card\n- !carte\n- !liste [Nombre d'elements souhaites]\n- !horloge : gestion des horloges PBTA\n- !last : Date de dernier post\n- !actif : Nombre de message et taille moyenne de ceux ci\n- !quote : citations du salon\n- !biere : breuvages du salon\n- !cristal : Posez une question à la boule de cristal.\n- !accueil : Modifie le message d'accueil\n- !modo : Gère les modérateurs du salon\n- !module : Gère les modules actifs sur le salon\n- :roll \n- :sw \n- :dom \n- :wod \n- :owod \n- :ars \n- :des \n- :star \n\n- Pour plus de details, tapez !" + name + " \n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix") def roll(result,type,explosif,nb,f,noadd,ars,relance,mitige): # Lancement d'un dé # verif type et contenu params? @@ -428,8 +435,8 @@ def rolls(result,jet,type,nb,explosif,noadd,wild,f,g,ars,relance,mitige,z): # La y = 0 total = 0 allresult = [] - if (nb > 10000): - nb = 10000 + if (nb > 100): + nb = 100 tmp=(type and nb) if (tmp): jet += str(nb)+"d"+str(type) @@ -476,7 +483,7 @@ def rolls(result,jet,type,nb,explosif,noadd,wild,f,g,ars,relance,mitige,z): # La jet += ("e" if explosif == True else "#e") if explosif != parser.option[0] else "" jet += ("n" if noadd == True else "#n") if noadd != parser.option[1] else "" jet += ("a" if ars == True else "#a") if ars != parser.option[8] else "" - print("fin rolls : " + str(result) + "|" + str(total) + "|" + str(jet)) + #print("fin rolls : " + str(result) + "|" + str(total) + "|" + str(jet)) return (result,total,jet) def entryPoint(room, event): # Analyse des commandes ":", point d'entrée pour les jets de dés @@ -521,7 +528,7 @@ def entryPoint(room, event): # Analyse des commandes ":", point d'entrée pour l if (not parser.arg.get("error",None) and not parser.eat("$",0)): parser.arg["noerror"] = True - room.send_text("Je n'ai pas compris " + text) + msg(room,"Je n'ai pas compris " + text) def rollOptionPoint(): # Parse des options @@ -635,7 +642,7 @@ def rollXPoint(): # Parser le nombre de lancers de dés identiques for _ in range(xtime): parser = dupli(parser) parser.str = str - print (parser.str) + #print (parser.str) rollPlusMoinsPoint() parser = tmp else: @@ -702,10 +709,10 @@ def rollPlusMoinsPoint(): # Gérer les bloc du jet séparés par les + et -, aff tmp = (res1 - s) // d + 1 result += ("/" + ("0" if (tmp < 0) else str(tmp))) if (s != 0) else "" parser.arg["jet"] = jet - parser.room.send_text(parser.nick + " rolls " + ("e" if exp else "") + ("n" if noa else "") + ("v" if ver else "") + ("a" if ars else "") + ("s"+str(s)+"/"+str(d) if (s != 0) else "") + (" " if (exp or noa or ver or s != 0) else "") + result) + parser.msg(room,parser.nick + " rolls " + ("e" if exp else "") + ("n" if noa else "") + ("v" if ver else "") + ("a" if ars else "") + ("s"+str(s)+"/"+str(d) if (s != 0) else "") + (" " if (exp or noa or ver or s != 0) else "") + result) elif (not parser.arg.get("noerror",False)): - parser.room.send_text("match = " + parser.mtch + "\nstr = " + parser.str) - parser.room.send_text("Rien compris. Essayez '!help' pour obtenir de l'aide.") + parser.msg(room,"match = " + parser.mtch + "\nstr = " + parser.str) + parser.msg(room,"Rien compris. Essayez '!help' pour obtenir de l'aide.") def rollEntityPoint(): # Parser les séparateurs de bloc + et - @@ -756,7 +763,7 @@ def rollTypePoint(): # Parser le nombre de faces du dé def reponses(room, phrases): # Afficher une réponse aléatoire dans la liste i = random.randrange(0,len(phrases)) - room.send_text(phrases[i]) + msg(room,phrases[i]) def jdr(room, event): global modules @@ -839,9 +846,9 @@ def liste(room, event): # Afficher un élement aléatoire d'une liste fournie for i in range(nb): id = random.randrange(0,len(list)) res.append(list.pop(id)) - room.send_text(nick + " obtient :\n" + '\n'.join(res)) + msg(room,nick + " obtient :\n" + '\n'.join(res)) else: - room.send_text("Utilisation : !liste [nombre d elements]") + msg(room,"Utilisation : !liste [nombre d elements]") def cristal(room, event): # Affiche une réponse à une question posée global modules @@ -855,7 +862,7 @@ def cristal(room, event): # Affiche une réponse à une question posée args = event['content']['body'].split() args.pop(0) if (len(args) < 2 or args[len(args)-1][-1] != '?'): - room.send_text("Utilisation : !cristal ") + msg(room,"Utilisation : !cristal ") else: args[len(args)-1] = args[len(args)-1][0:-1] conj = args[0] @@ -937,21 +944,21 @@ def horloge(room, event): # Gestion des horloges PBTA for cle,valeur in clock.items(): if (cle[0] == room.room_id): if (int(valeur) == 0): - room.send_text(cle[1] + " : " + chr(128320) + "\n") + msg(room,cle[1] + " : " + chr(128320) + "\n") elif (int(valeur) == 1): - room.send_text(cle[1] + " : " + chr(128338) + "\n") + msg(room,cle[1] + " : " + chr(128338) + "\n") elif (int(valeur) == 2): - room.send_text(cle[1] + " : " + chr(128341) + "\n") + msg(room,cle[1] + " : " + chr(128341) + "\n") elif (int(valeur) == 3): - room.send_text(cle[1] + " : " + chr(128344) + "\n") + msg(room,cle[1] + " : " + chr(128344) + "\n") elif (int(valeur) == 4): - room.send_text(cle[1] + " : " + chr(128345) + "\n") + msg(room,cle[1] + " : " + chr(128345) + "\n") elif (int(valeur) == 5): - room.send_text(cle[1] + " : " + chr(128346) + "\n") + msg(room,cle[1] + " : " + chr(128346) + "\n") elif (int(valeur) == 6): - room.send_text(cle[1] + " : " + chr(128347) + "\n") + msg(room,cle[1] + " : " + chr(128347) + "\n") else: - room.send_text(cle[1] + " : " + str(valeur) + " \n") + msg(room,cle[1] + " : " + str(valeur) + " \n") elif (len(args) >= 2 and args[len(args)-1].isnumeric()): # Place le niveau de l'horloge entre 0 et 6 nv = int(args[len(args)-1]) @@ -961,7 +968,7 @@ def horloge(room, event): # Gestion des horloges PBTA args.pop(0) del clock[room.room_id, ' '.join(args)] else: - room.send_text("Utilisation : \n- !horloge : Affiche les horloges. \n- !horloge : Place ou crée l'horloge au niveau spécifié.\n- !horloge del : Supprime l'horloge.") + msg(room,"Utilisation : \n- !horloge : Affiche les horloges. \n- !horloge : Place ou crée l'horloge au niveau spécifié.\n- !horloge del : Supprime l'horloge.") def statistiques(room,event): # Enregistrement des statistiques global modules @@ -1037,12 +1044,12 @@ def last(room,event): # Regarde la dernière fois que quelqu'un a écrit un mess pers=" ".join(args) try: usrstats = stats[room.room_id,pers] - room.send_text("J'ai vu " + usrstats.nick + " poster pour la derniere fois le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S")) + msg(room,"J'ai vu " + usrstats.nick + " poster pour la derniere fois le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S")) except: - room.send_text(pers + " : Personne non reconnue") + msg(room,pers + " : Personne non reconnue") #for cle,valeur in stats.items(): # if (cle[0] == room.room_id): - # room.send_text(cle[1] + "\n") + # msg(room,cle[1] + "\n") def actif(room,event): # Stats d'activité d'une personne global modules @@ -1062,9 +1069,9 @@ def actif(room,event): # Stats d'activité d'une personne try: usrstats = stats[room.room_id,pers] moy = "{:10.2f}".format(usrstats.char / usrstats.mess) - room.send_text(usrstats.nick + " a poste " + str(usrstats.mess) + " messages avec une moyenne de " + moy + " caracteres par message") + msg(room,usrstats.nick + " a poste " + str(usrstats.mess) + " messages avec une moyenne de " + moy + " caracteres par message") except: - room.send_text(pers + " : Personne non reconnue\n") + msg(room,pers + " : Personne non reconnue\n") def nb_kap(room,event): global modules @@ -1084,15 +1091,15 @@ def nb_kap(room,event): try: usrstats = stats[room.room_id,pers] if (usrstats.kapoue < 10): - room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE!") + msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE!") elif (usrstats.kapoue < 50): - room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Pendez le!") + msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Pendez le!") elif (usrstats.kapoue < 150): - room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Brûlez le vif!") + msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Brûlez le vif!") else: - room.send_text(usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Faites le manger par des fourmis! Pauvres bêtes...") + msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Faites le manger par des fourmis! Pauvres bêtes...") except: - room.send_text(pers + " : Personne non reconnue\n") + msg(room,pers + " : Personne non reconnue\n") def quote(room,event): # Gestion des citations global modules @@ -1122,10 +1129,10 @@ def quote(room,event): # Gestion des citations tps = datetime.now().microsecond famous[nick,tps] = citation quotes[room.room_id] = famous - room.send_text("Ajout de la citation de " + nick + ":" + citation) + msg(room,"Ajout de la citation de " + nick + ":" + citation) else: # message d'aide - room.send_text("!quote add :") + msg(room,"!quote add :") elif (len(args) > 0 and args[0] == "list"): # liste les quotes args.pop(0) @@ -1138,21 +1145,21 @@ def quote(room,event): # Gestion des citations for cle,valeur in famous.items(): reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" if (len(reponse) > 500): - salon.send_text(reponse) + msg(salon,reponse) reponse = "" - salon.send_text(reponse) + msg(salon,reponse) elif (args[0] == "all"): # toutes les quotes de tous les salons reponse = "Les citations de tous les salons : " + "\n" - salon.send_text(reponse) + msg(salon,reponse) for rid,fame in quotes.items(): reponse = "Voici les reponses du salon " + rid + "\n" for cle,valeur in fame.items(): reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" if (len(reponse) > 500): - salon.send_text(reponse) + msg(salon,reponse) reponse = "" - salon.send_text(reponse) + msg(salon,reponse) else: # les quotes du pseudo spécifié nick = " ".join(args) @@ -1160,7 +1167,7 @@ def quote(room,event): # Gestion des citations for cle,valeur in famous.items(): if (cle[0] == nick): reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" - salon.send_text(reponse) + msg(salon,reponse) elif (len(args) > 1 and args[0] == "del"): salon = verifPMRoom(room,event) lmod = modos[room.room_id] @@ -1173,7 +1180,7 @@ def quote(room,event): # Gestion des citations del fame[cle[0],cle[1]] reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" break - salon.send_text(reponse) + msg(salon,reponse) elif (event['sender'] in lmod): id = args[1] reponse = "Voici la citation supprimée : \n" @@ -1184,9 +1191,9 @@ def quote(room,event): # Gestion des citations del fame[cle[0],cle[1]] reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" break - salon.send_text(reponse) + msg(salon,reponse) else: - salon.send_text("Vous n'êtes pas autorisés à supprimer des citations.") + msg(salon,"Vous n'êtes pas autorisés à supprimer des citations.") elif (len(args) > 0): # cite une quote d'une personne precise nick = " ".join(args) @@ -1197,7 +1204,7 @@ def quote(room,event): # Gestion des citations if (len(phrases) > 0 ): reponses(room,phrases) else: - room.send_text("Je n'ai pas de citations pour " + nick) + msg(room,"Je n'ai pas de citations pour " + nick) else: # cite une quote aleatoire phrases = [] @@ -1206,7 +1213,7 @@ def quote(room,event): # Gestion des citations if (len(phrases) > 0 ): reponses(room,phrases) else: - room.send_text("Je n'ai pas de citations pour ce salon") + msg(room,"Je n'ai pas de citations pour ce salon") def biere(room,event): # Gestion des boissons global modules @@ -1249,10 +1256,10 @@ def biere(room,event): # Gestion des boissons tps = datetime.now().microsecond breuvages[nick,tps] = citation bieres[room.room_id] = breuvages - room.send_text("Ajout du breuvage " + nick + ":" + citation) + msg(room,"Ajout du breuvage " + nick + ":" + citation) else: # message d'aide - room.send_text("!biere add :") + msg(room,"!biere add :") elif (len(args) > 0 and args[0] == "list"): # liste les quotes args.pop(0) @@ -1265,21 +1272,21 @@ def biere(room,event): # Gestion des boissons for cle,valeur in breuvages.items(): reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" if (len(reponse) > 500): - salon.send_text(reponse) + msg(salon,reponse) reponse = "" - salon.send_text(reponse) + msg(salon,reponse) elif (args[0] == "all"): # tous les breuvages de tous les salons reponse = "Les breuvages de tous les salons : " + "\n" - salon.send_text(reponse) + msg(salon,reponse) for rid,fame in bieres.items(): reponse = "Voici les reponses du salon " + rid + "\n" for cle,valeur in fame.items(): reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" if (len(reponse) > 500): - salon.send_text(reponse) + msg(salon,reponse) reponse = "" - salon.send_text(reponse) + msg(salon,reponse) else: # les breuvages du pseudo spécifié nick = " ".join(args) @@ -1287,7 +1294,7 @@ def biere(room,event): # Gestion des boissons for cle,valeur in breuvages.items(): if (cle[0] == nick): reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" - salon.send_text(reponse) + msg(salon,reponse) elif (len(args) > 1 and args[0] == "del"): salon = verifPMRoom(room,event) lmod = modos[room.room_id] @@ -1300,7 +1307,7 @@ def biere(room,event): # Gestion des boissons del fame[cle[0],cle[1]] reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" break - salon.send_text(reponse) + msg(salon,reponse) elif (event['sender'] in lmod): id = args[1] reponse = "Voici le breuvage supprimé : \n" @@ -1311,9 +1318,9 @@ def biere(room,event): # Gestion des boissons del fame[cle[0],cle[1]] reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n" break - salon.send_text(reponse) + msg(salon,reponse) else: - salon.send_text("Vous n'êtes pas autorisés à supprimer des breuvages.") + msg(salon,"Vous n'êtes pas autorisés à supprimer des breuvages.") elif (len(args) > 0): # cite une reponse d'un breuvage precis nick = " ".join(args) @@ -1327,7 +1334,7 @@ def biere(room,event): # Gestion des boissons if (len(phrases) > 0 ): reponses(room,phrases) else: - room.send_text("Je n'ai pas de " + nick + " en stock!") + msg(room,"Je n'ai pas de " + nick + " en stock!") else: # cite une réponse d'un breuvage aleatoire phrases = [] @@ -1339,7 +1346,7 @@ def biere(room,event): # Gestion des boissons if (len(phrases) > 0 ): reponses(room,phrases) else: - room.send_text("Je n'ai pas de breuvages pour ce salon") + msg(room,"Je n'ai pas de breuvages pour ce salon") def boissons(room,event): # Gestion des alias de boissons global modules @@ -1387,10 +1394,10 @@ def accueil(room,event): # Mettre un message d'accueil reponse = " ".join(args) if (len(args) > 0): welcome[room.room_id] = reponse - room.send_text("Le message d'accueil est désormais : " + reponse) + msg(room,"Le message d'accueil est désormais : " + reponse) else: - salon.send_text("Vous n'êtes pas autorisés à modifier le message d'accueil.") + msg(salon,"Vous n'êtes pas autorisés à modifier le message d'accueil.") def bienvenue(event): # Affichage d'un message d'accueil aux nouveaux venus room_id = event['room_id'] @@ -1413,7 +1420,7 @@ def bienvenue(event): # Affichage d'un message d'accueil aux nouveaux venus except: msg = "" if (membership == "join"): - room.send_text("Bienvenue sur " + alias + ", " + nick + ". " + msg) + msg(room,"Bienvenue sur " + alias + ", " + nick + ". " + msg) def modo(room,event): # Definition d'un moderateur global modos @@ -1431,9 +1438,9 @@ def modo(room,event): # Definition d'un moderateur if (not candidat in lmod): lmod.append(candidat) modos[room.room_id] = lmod - room.send_text(candidat + " devient moderateur.") + msg(room,candidat + " devient moderateur.") else: - room.send_text(candidat + " est déjà moderateur.") + msg(room,candidat + " est déjà moderateur.") elif (len(args) > 1 and args[0] == "del"): args.pop(0) candidat = " ".join(args) @@ -1441,13 +1448,13 @@ def modo(room,event): # Definition d'un moderateur place = lmod.index(candidat) del lmod[place] modos[room.room_id] = lmod - room.send_text(candidat + " n'est plus moderateur.") + msg(room,candidat + " n'est plus moderateur.") else: - room.send_text(candidat + " n'est pas moderateur.") + msg(room,candidat + " n'est pas moderateur.") else: - room.send_text("\n".join(lmod)) + msg(room,"\n".join(lmod)) else: - salon.send_text("Vous n'êtes pas autorisés à définir les modérateurs.") + msg(salon,"Vous n'êtes pas autorisés à définir les modérateurs.") def module(room,event): # Definition des modules d'un salon lmod = [] @@ -1464,18 +1471,18 @@ def module(room,event): # Definition des modules d'un salon rmod = args[0] if (rmod in liste_mod): modules[room.room_id, rmod] = True - room.send_text("Module : " + rmod + " activé.") + msg(room,"Module : " + rmod + " activé.") else: - room.send_text("Module : " + rmod + " inconnu.") - print(liste_mod) + msg(room,"Module : " + rmod + " inconnu.") + #print(liste_mod) elif (len(args) == 2 and args[0] == "del"): args.pop(0) rmod = args[0] if (rmod in liste_mod): modules[room.room_id, rmod] = False - room.send_text("Module : " + rmod + " désactivé.") + msg(room,"Module : " + rmod + " désactivé.") else: - room.send_text("Module : " + rmod + " inconnu.") + msg(room,"Module : " + rmod + " inconnu.") else: # Lister les modules actifs du salon rmod = "" @@ -1484,16 +1491,16 @@ def module(room,event): # Definition des modules d'un salon rmod = rmod + cle[1] + ", " if (len(rmod) > 1): rmod = rmod[:-2] - room.send_text("Modules actuels : " + rmod) + msg(room,"Modules actuels : " + rmod) # Lister les modules disponibles dmod = "" for val in liste_mod: dmod = dmod + val + ", " if (len(dmod) > 1): dmod = dmod[:-2] - room.send_text("Modules disponibles : " + dmod) + msg(room,"Modules disponibles : " + dmod) else: - room.send_text("Vous n'êtes pas autorisés à définir les modules du salon.") + msg(room,"Vous n'êtes pas autorisés à définir les modules du salon.") def invitations(room_id, state): # Reponse aux invitations