Browse Source

blindage de l'envoi de messages

master
Nemesis 6 years ago
parent
commit
eaf97a3799
  1. 211
      asmodee.py

211
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 <options> <des> (+-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<nb> : difficulte a atteindre par de avec option n\n- g<nb> : nombre de des conserves\n- r<nb> : relance si le de a obtenu au moins ce nombre\n- m<nb> : Enleve un succes si ce nombre ou moins est atteint\n- s<nb/nb> : seuil a atteindre et niveaux de reussites\n- w<nb> : lance un wild die avec les autres.")
msg(salon,":roll <options> <des> (+-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<nb> : difficulte a atteindre par de avec option n\n- g<nb> : nombre de des conserves\n- r<nb> : relance si le de a obtenu au moins ce nombre\n- m<nb> : Enleve un succes si ce nombre ou moins est atteint\n- s<nb/nb> : seuil a atteindre et niveaux de reussites\n- w<nb> : lance un wild die avec les autres.")
elif (re.search("sw", args[0])):
salon.send_text("- :sw <options> <des> : Lance les des en mode Savage Worlds\nVerbose/Noadd/Explosif/Seuil 4/Niveau de reussite 4/Wild Die d6.")
msg(salon,"- :sw <options> <des> : 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 <options> <des> : Lance les dommages en mode Savage Worlds\nVerbose/Explosif/seuil 4/Niveau de reussite 4.")
msg(salon,"- :dom <options> <des> : 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 <options> <des> : Lance les des en mode Ancien Monde des Tenebres\nVerbose/Noadd/Difficulte 6/Relance les 10/Les 1 enleve un succes.")
msg(salon,"- :owod <options> <des> : 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 <options> <des> : Lance les des en mode Nouveau Monde des Tenebres\nVerbose/Noadd/Difficulte 8/Relance les 10.")
msg(salon,"- :wod <options> <des> : 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 <options> <des> : Lance les des en mode Ars Magicka : de de tension\nVerbose/Noadd/Sur un 1, on relance et on double.")
msg(salon,"- :ars <options> <des> : 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 <options> <des> : Lance des des de desastre\nVerbose/Noadd/Difficulte 10.")
msg(salon,"- :des <options> <des> : Lance des des de desastre\nVerbose/Noadd/Difficulte 10.")
elif (re.search("star", args[0])):
salon.send_text("- :star <options> <des> : 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 <options> <des> : 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 <options/de/la/liste> [Nombre d'elements souhaites] : retourne ce nombre d'elements de la liste.")
msg(salon,"- !liste <options/de/la/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 <Nom de l'horloge> <niveau> : Crée ou modifie une horloge en lui mettant un niveau (normalement de 0 à 6)\n- !horloge del <Nom de l'horloge> : Supprime cette horloge.")
msg(salon,"- !horloge : Affiche les horloges\n- !horloge <Nom de l'horloge> <niveau> : Crée ou modifie une horloge en lui mettant un niveau (normalement de 0 à 6)\n- !horloge del <Nom de l'horloge> : Supprime cette horloge.")
elif (re.search("last", args[0])):
salon.send_text("- !last : Date de son dernier post\n- !last <Personne> : Date du dernier post de la personne\n")
msg(salon,"- !last : Date de son dernier post\n- !last <Personne> : 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 <Personne> : 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 <Personne> : 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 <Personne> : Affiche une citation d'une personne du salon au hasard\n- !quote add <Personne>:<citation> : 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 <id> : Supprime la citation avec l'id spécifié")
msg(salon,"- !quote : Affiche une citation du salon au hasard\n- !quote <Personne> : Affiche une citation d'une personne du salon au hasard\n- !quote add <Personne>:<citation> : 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 <id> : 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 <Nom de breuvage> : Fournit une boisson spécifique du salon\n- !biere give <Personne>[:Nom du Breuvage] : Offre une boisson (spécifique en option) à la personne spécifiée\n- !biere add <Nom du breuvage>:<Phrase> : 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 <id> : Supprime la phrase avec l'id spécifié")
msg(salon,"- !biere : Fournit une boisson du salon au hasard\n- !biere <Nom de breuvage> : Fournit une boisson spécifique du salon\n- !biere give <Personne>[:Nom du Breuvage] : Offre une boisson (spécifique en option) à la personne spécifiée\n- !biere add <Nom du breuvage>:<Phrase> : 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 <id> : Supprime la phrase avec l'id spécifié")
elif (re.search("accueil", args[0])):
salon.send_text("- !accueil <message> : 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 <message> : 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 <mxid> : Ajoute une personne comme modérateur du salon\n- !modo del <mxid> : 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 <mxid> : Ajoute une personne comme modérateur du salon\n- !modo del <mxid> : 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 <module> : Active un module sur le salon\n- !modo del <module> : 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 <module> : Active un module sur le salon\n- !modo del <module> : 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 <options/de/la/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 <message> : 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 <options> <des>\n- :sw <options> <des>\n- :dom <options> <des>\n- :wod <options> <des>\n- :owod <options> <des>\n- :ars <options> <des>\n- :des <options> <des>\n- :star <options> <des>\n\n- Pour plus de details, tapez !" + name + " <commande>\n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix")
msg(salon,"Commandes disponibles:\n- !card\n- !carte\n- !liste <options/de/la/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 <message> : 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 <options> <des>\n- :sw <options> <des>\n- :dom <options> <des>\n- :wod <options> <des>\n- :owod <options> <des>\n- :ars <options> <des>\n- :des <options> <des>\n- :star <options> <des>\n\n- Pour plus de details, tapez !" + name + " <commande>\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 <options/de/la/liste> [nombre d elements]")
msg(room,"Utilisation : !liste <options/de/la/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 <Quelle est votre question?>")
msg(room,"Utilisation : !cristal <Quelle est votre question?>")
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 <nom> <niveau> : Place ou crée l'horloge au niveau spécifié.\n- !horloge del <nom> : Supprime l'horloge.")
msg(room,"Utilisation : \n- !horloge : Affiche les horloges. \n- !horloge <nom> <niveau> : Place ou crée l'horloge au niveau spécifié.\n- !horloge del <nom> : 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 <nick>:<citation>")
msg(room,"!quote add <nick>:<citation>")
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 <nick>:<citation>")
msg(room,"!biere add <nick>:<citation>")
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

Loading…
Cancel
Save