generated from Nemesis/Exemple
generaliser la substitution du @room à l'envoi
This commit is contained in:
parent
ef58bf339f
commit
d973b8e146
2 changed files with 139 additions and 128 deletions
|
@ -9,6 +9,7 @@ admin = ""
|
||||||
liste = roll,quote,biere,stats,liste,horloge,carte,card,cristal,welcome,salut,jdr,gens,va,salon,kick
|
liste = roll,quote,biere,stats,liste,horloge,carte,card,cristal,welcome,salut,jdr,gens,va,salon,kick
|
||||||
|
|
||||||
[MAIL]
|
[MAIL]
|
||||||
|
malt = 0
|
||||||
msender = "user@domain.tld"
|
msender = "user@domain.tld"
|
||||||
mpass = "password"
|
mpass = "password"
|
||||||
msmtp = "smtp"
|
msmtp = "smtp"
|
||||||
|
|
266
asmodee.py
266
asmodee.py
|
@ -12,6 +12,7 @@ import threading
|
||||||
import json
|
import json
|
||||||
from datetime import datetime,timedelta
|
from datetime import datetime,timedelta
|
||||||
import smtplib
|
import smtplib
|
||||||
|
import os
|
||||||
|
|
||||||
from matrix_bot_api.matrix_bot_api import MatrixBotAPI
|
from matrix_bot_api.matrix_bot_api import MatrixBotAPI
|
||||||
from matrix_bot_api.mregex_handler import MRegexHandler
|
from matrix_bot_api.mregex_handler import MRegexHandler
|
||||||
|
@ -47,6 +48,7 @@ mails = {} # Liste de gens abonnés par mail au salon
|
||||||
liste_mod = [] # Modules disponibles
|
liste_mod = [] # Modules disponibles
|
||||||
USERNAME = ""
|
USERNAME = ""
|
||||||
|
|
||||||
|
malt = 0
|
||||||
msender = ""
|
msender = ""
|
||||||
mpass = ""
|
mpass = ""
|
||||||
msmtp = ""
|
msmtp = ""
|
||||||
|
@ -292,8 +294,11 @@ class Parser: #Pour parser la ligne de commande
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def msg(room,msg,content=False):
|
def msg(room,msg,sender,content=False):
|
||||||
try:
|
try:
|
||||||
|
lmod = modos[room.room_id]
|
||||||
|
if (sender not in admins and sender not in lmod):
|
||||||
|
msg = msg.replace('@room', 'tout le monde')
|
||||||
if content:
|
if content:
|
||||||
bot.client.api.send_message_event(room.room_id, 'm.room.message', msg, None, None)
|
bot.client.api.send_message_event(room.room_id, 'm.room.message', msg, None, None)
|
||||||
else:
|
else:
|
||||||
|
@ -327,7 +332,7 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message
|
||||||
# if alias in salon.aliases:
|
# if alias in salon.aliases:
|
||||||
# print("trouvé : " + cle)
|
# print("trouvé : " + cle)
|
||||||
# print(salon.aliases)
|
# print(salon.aliases)
|
||||||
# msg(salon,"gagné")
|
# msg(salon,"gagné",event['sender'])
|
||||||
# return salon
|
# return salon
|
||||||
# else:
|
# else:
|
||||||
# print(salon.aliases)
|
# print(salon.aliases)
|
||||||
|
@ -349,7 +354,7 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message
|
||||||
except:
|
except:
|
||||||
print("Impossible de creer ou joindre " + alias)
|
print("Impossible de creer ou joindre " + alias)
|
||||||
return None
|
return None
|
||||||
#msg(salon,"nouvelle conversation")
|
#msg(salon,"nouvelle conversation",event['sender'])
|
||||||
# TODO vérifier la présence du sender dans la liste des membres de ce salon et réinviter si besoin
|
# TODO vérifier la présence du sender dans la liste des membres de ce salon et réinviter si besoin
|
||||||
try:
|
try:
|
||||||
salon.invite_user(event['sender'])
|
salon.invite_user(event['sender'])
|
||||||
|
@ -383,7 +388,7 @@ def card(room, event): # Tirer une carte du paquet sans la retirer
|
||||||
modules[room.room_id, 'card'] = False
|
modules[room.room_id, 'card'] = False
|
||||||
if (modules[room.room_id, 'card']):
|
if (modules[room.room_id, 'card']):
|
||||||
reponse = cartes_base[random.randrange(0,len(cartes_base))]
|
reponse = cartes_base[random.randrange(0,len(cartes_base))]
|
||||||
msg(room,reponse)
|
msg(room,reponse,event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def carte(room, event): # Tirer une carte du paquet en la retirant ensuite
|
def carte(room, event): # Tirer une carte du paquet en la retirant ensuite
|
||||||
|
@ -397,13 +402,13 @@ def carte(room, event): # Tirer une carte du paquet en la retirant ensuite
|
||||||
args = event['content']['body'].split()
|
args = event['content']['body'].split()
|
||||||
if (len(args) > 1):
|
if (len(args) > 1):
|
||||||
cartes=list(cartes_base)
|
cartes=list(cartes_base)
|
||||||
msg(room,"Le paquet est melange")
|
msg(room,"Le paquet est melange",event['sender'])
|
||||||
else:
|
else:
|
||||||
if (len(cartes) < 1):
|
if (len(cartes) < 1):
|
||||||
cartes=list(cartes_base)
|
cartes=list(cartes_base)
|
||||||
msg(room,"Le paquet est melange")
|
msg(room,"Le paquet est melange",event['sender'])
|
||||||
i = random.randrange(0,len(cartes))
|
i = random.randrange(0,len(cartes))
|
||||||
msg(room,cartes[i])
|
msg(room,cartes[i],event['sender'])
|
||||||
cartes.pop(i)
|
cartes.pop(i)
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
|
@ -420,51 +425,51 @@ def help_center(room,event,name,private): # Aide sur les commandes disponibles
|
||||||
salon = verifPMRoom(room,event)
|
salon = verifPMRoom(room,event)
|
||||||
if (len(args) > 0):
|
if (len(args) > 0):
|
||||||
if (re.search("roll", args[0])):
|
if (re.search("roll", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("sw", args[0])):
|
elif (re.search("sw", args[0])):
|
||||||
msg(salon,"- :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.",event['sender'])
|
||||||
elif (re.search("dom", args[0])):
|
elif (re.search("dom", args[0])):
|
||||||
msg(salon,"- :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.",event['sender'])
|
||||||
elif (re.search("owod", args[0])):
|
elif (re.search("owod", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("wod", args[0])):
|
elif (re.search("wod", args[0])):
|
||||||
msg(salon,"- :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.",event['sender'])
|
||||||
elif (re.search("ars", args[0])):
|
elif (re.search("ars", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("des", args[0])):
|
elif (re.search("des", args[0])):
|
||||||
msg(salon,"- :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.",event['sender'])
|
||||||
elif (re.search("star", args[0])):
|
elif (re.search("star", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("carte", args[0])):
|
elif (re.search("carte", args[0])):
|
||||||
msg(salon,"- !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.",event['sender'])
|
||||||
elif (re.search("card", args[0])):
|
elif (re.search("card", args[0])):
|
||||||
msg(salon,"- !card : tire une carte sans la retirer du paquet.")
|
msg(salon,"- !card : tire une carte sans la retirer du paquet.",event['sender'])
|
||||||
elif (re.search("liste", args[0])):
|
elif (re.search("liste", args[0])):
|
||||||
msg(salon,"- !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.",event['sender'])
|
||||||
elif (re.search("horloge", args[0])):
|
elif (re.search("horloge", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("last", args[0])):
|
elif (re.search("last", args[0])):
|
||||||
msg(salon,"- !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",event['sender'])
|
||||||
elif (re.search("actif", args[0])):
|
elif (re.search("actif", args[0])):
|
||||||
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")
|
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",event['sender'])
|
||||||
elif (re.search("quote", args[0])):
|
elif (re.search("quote", args[0])):
|
||||||
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é")
|
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é",event['sender'])
|
||||||
elif (re.search("biere", args[0])):
|
elif (re.search("biere", args[0])):
|
||||||
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é")
|
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é",event['sender'])
|
||||||
elif (re.search("accueil", args[0])):
|
elif (re.search("accueil", args[0])):
|
||||||
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.'")
|
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.'",event['sender'])
|
||||||
elif (re.search("kick", args[0])):
|
elif (re.search("kick", args[0])):
|
||||||
msg(salon,"- !kick <@mxid> [@mxid] ... : kick les users listés")
|
msg(salon,"- !kick <@mxid> [@mxid] ... : kick les users listés",event['sender'])
|
||||||
elif (re.search("mails", args[0]) or re.search("mail", args[0])):
|
elif (re.search("mails", args[0]) or re.search("mail", args[0])):
|
||||||
msg(salon,"- !mail add <email> : s'abonner aux messages du salon par mail.\n -!mail del <email> : se désabonner aux messages du salon par mail.")
|
msg(salon,"- !mail add <email> : s'abonner aux messages du salon par mail.\n -!mail del <email> : se désabonner aux messages du salon par mail.",event['sender'])
|
||||||
elif (re.search("modo", args[0])):
|
elif (re.search("modo", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("module", args[0])):
|
elif (re.search("module", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
elif (re.search("cristal", args[0])):
|
elif (re.search("cristal", args[0])):
|
||||||
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.")
|
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.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(salon,"A venir")
|
msg(salon,"A venir",event['sender'])
|
||||||
else:
|
else:
|
||||||
rid = room.room_id
|
rid = room.room_id
|
||||||
message = "Commandes disponibles:"
|
message = "Commandes disponibles:"
|
||||||
|
@ -494,7 +499,7 @@ def help_center(room,event,name,private): # Aide sur les commandes disponibles
|
||||||
if (cle[0] == rid and cle[1] == "roll" and valeur):
|
if (cle[0] == rid and cle[1] == "roll" and valeur):
|
||||||
message += "\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>"
|
message += "\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>"
|
||||||
message += "\n- !modo : Gère les modérateurs du salon\n- !module : Gère les modules actifs sur le salon\n\n- Pour plus de details, tapez !" + name + " <commande>\n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix"
|
message += "\n- !modo : Gère les modérateurs du salon\n- !module : Gère les modules actifs sur le salon\n\n- Pour plus de details, tapez !" + name + " <commande>\n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix"
|
||||||
msg(salon,message)
|
msg(salon,message,event['sender'])
|
||||||
|
|
||||||
def roll(result,type,explosif,nb,f,noadd,ars,relance,mitige): # Lancement d'un dé
|
def roll(result,type,explosif,nb,f,noadd,ars,relance,mitige): # Lancement d'un dé
|
||||||
# verif type et contenu params?
|
# verif type et contenu params?
|
||||||
|
@ -631,7 +636,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)):
|
if (not parser.arg.get("error",None) and not parser.eat("$",0)):
|
||||||
parser.arg["noerror"] = True
|
parser.arg["noerror"] = True
|
||||||
msg(room,"Je n'ai pas compris " + text)
|
msg(room,"Je n'ai pas compris " + text,event['sender'])
|
||||||
|
|
||||||
|
|
||||||
def rollOptionPoint(): # Parse des options
|
def rollOptionPoint(): # Parse des options
|
||||||
|
@ -812,10 +817,10 @@ def rollPlusMoinsPoint(): # Gérer les bloc du jet séparés par les + et -, aff
|
||||||
tmp = (res1 - s) // d + 1
|
tmp = (res1 - s) // d + 1
|
||||||
result += ("/" + ("0" if (tmp < 0) else str(tmp))) if (s != 0) else ""
|
result += ("/" + ("0" if (tmp < 0) else str(tmp))) if (s != 0) else ""
|
||||||
parser.arg["jet"] = jet
|
parser.arg["jet"] = jet
|
||||||
msg(parser.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)
|
msg(parser.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, "dice")
|
||||||
elif (not parser.arg.get("noerror",False)):
|
elif (not parser.arg.get("noerror",False)):
|
||||||
msg(parser.room,"match = " + parser.mtch + "\nstr = " + parser.str)
|
msg(parser.room,"match = " + parser.mtch + "\nstr = " + parser.str, "dice")
|
||||||
msg(parser.room,"Rien compris. Essayez '!help' pour obtenir de l'aide.")
|
msg(parser.room,"Rien compris. Essayez '!help' pour obtenir de l'aide.", "dice")
|
||||||
|
|
||||||
|
|
||||||
def rollEntityPoint(): # Parser les séparateurs de bloc + et -
|
def rollEntityPoint(): # Parser les séparateurs de bloc + et -
|
||||||
|
@ -866,7 +871,7 @@ def rollTypePoint(): # Parser le nombre de faces du dé
|
||||||
|
|
||||||
def reponses(room, phrases, content=False): # Afficher une réponse aléatoire dans la liste
|
def reponses(room, phrases, content=False): # Afficher une réponse aléatoire dans la liste
|
||||||
i = random.randrange(0,len(phrases))
|
i = random.randrange(0,len(phrases))
|
||||||
msg(room,phrases[i],content)
|
msg(room,phrases[i],content, "reponses")
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def jdr(room, event):
|
def jdr(room, event):
|
||||||
|
@ -954,9 +959,9 @@ def liste(room, event): # Afficher un élement aléatoire d'une liste fournie
|
||||||
for i in range(nb):
|
for i in range(nb):
|
||||||
id = random.randrange(0,len(list))
|
id = random.randrange(0,len(list))
|
||||||
res.append(list.pop(id))
|
res.append(list.pop(id))
|
||||||
msg(room,nick + " obtient :\n" + '\n'.join(res))
|
msg(room,nick + " obtient :\n" + '\n'.join(res),event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,"Utilisation : !liste <options/de/la/liste> [nombre d elements]")
|
msg(room,"Utilisation : !liste <options/de/la/liste> [nombre d elements]",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def cristal(room, event): # Affiche une réponse à une question posée
|
def cristal(room, event): # Affiche une réponse à une question posée
|
||||||
|
@ -971,7 +976,7 @@ def cristal(room, event): # Affiche une réponse à une question posée
|
||||||
args = event['content']['body'].split()
|
args = event['content']['body'].split()
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
if (len(args) < 2 or args[len(args)-1][-1] != '?'):
|
if (len(args) < 2 or args[len(args)-1][-1] != '?'):
|
||||||
msg(room,"Utilisation : !cristal <Quelle est votre question?>")
|
msg(room,"Utilisation : !cristal <Quelle est votre question?>",event['sender'])
|
||||||
else:
|
else:
|
||||||
args[len(args)-1] = args[len(args)-1][0:-1]
|
args[len(args)-1] = args[len(args)-1][0:-1]
|
||||||
conj = args[0]
|
conj = args[0]
|
||||||
|
@ -1038,21 +1043,21 @@ def cristal(room, event): # Affiche une réponse à une question posée
|
||||||
|
|
||||||
def aff_hor(room, hor, valeur): # affichage des horloges
|
def aff_hor(room, hor, valeur): # affichage des horloges
|
||||||
if (int(valeur) == 0):
|
if (int(valeur) == 0):
|
||||||
msg(room,hor + " : " + chr(128320) + "\n")
|
msg(room,hor + " : " + chr(128320) + "\n", "horloge")
|
||||||
elif (int(valeur) == 1):
|
elif (int(valeur) == 1):
|
||||||
msg(room,hor + " : " + chr(128338) + "\n")
|
msg(room,hor + " : " + chr(128338) + "\n", "horloge")
|
||||||
elif (int(valeur) == 2):
|
elif (int(valeur) == 2):
|
||||||
msg(room,hor + " : " + chr(128341) + "\n")
|
msg(room,hor + " : " + chr(128341) + "\n", "horloge")
|
||||||
elif (int(valeur) == 3):
|
elif (int(valeur) == 3):
|
||||||
msg(room,hor + " : " + chr(128344) + "\n")
|
msg(room,hor + " : " + chr(128344) + "\n", "horloge")
|
||||||
elif (int(valeur) == 4):
|
elif (int(valeur) == 4):
|
||||||
msg(room,hor + " : " + chr(128345) + "\n")
|
msg(room,hor + " : " + chr(128345) + "\n", "horloge")
|
||||||
elif (int(valeur) == 5):
|
elif (int(valeur) == 5):
|
||||||
msg(room,hor + " : " + chr(128346) + "\n")
|
msg(room,hor + " : " + chr(128346) + "\n", "horloge")
|
||||||
elif (int(valeur) == 6):
|
elif (int(valeur) == 6):
|
||||||
msg(room,hor + " : " + chr(128347) + "\n")
|
msg(room,hor + " : " + chr(128347) + "\n", "horloge")
|
||||||
else:
|
else:
|
||||||
msg(room,hor + " : " + str(valeur) + " \n")
|
msg(room,hor + " : " + str(valeur) + " \n", "horloge")
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def horloge(room, event): # Gestion des horloges PBTA
|
def horloge(room, event): # Gestion des horloges PBTA
|
||||||
|
@ -1099,7 +1104,7 @@ def horloge(room, event): # Gestion des horloges PBTA
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
del clock[room.room_id, ' '.join(args)]
|
del clock[room.room_id, ' '.join(args)]
|
||||||
else:
|
else:
|
||||||
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.")
|
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.",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def statistiques(room,event): # Enregistrement des statistiques
|
def statistiques(room,event): # Enregistrement des statistiques
|
||||||
|
@ -1190,7 +1195,7 @@ def last(room,event): # Regarde la dernière fois que quelqu'un a écrit un mess
|
||||||
for user,usrstats in all_usr.items():
|
for user,usrstats in all_usr.items():
|
||||||
if ((max_sign == "+" and usrstats.date < ref_duree) or ((max_sign == "-" and usrstats.date > ref_duree))):
|
if ((max_sign == "+" and usrstats.date < ref_duree) or ((max_sign == "-" and usrstats.date > ref_duree))):
|
||||||
reponse += "- " + usrstats.nick + "(" + user + ")" + " le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S") + "\n"
|
reponse += "- " + usrstats.nick + "(" + user + ")" + " le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S") + "\n"
|
||||||
msg(salon, reponse)
|
msg(salon, reponse,event['sender'])
|
||||||
elif (len(args) >= 1 and args[0] == "inactifs"):
|
elif (len(args) >= 1 and args[0] == "inactifs"):
|
||||||
max_sign = "+"
|
max_sign = "+"
|
||||||
max_duree = 0
|
max_duree = 0
|
||||||
|
@ -1211,7 +1216,7 @@ def last(room,event): # Regarde la dernière fois que quelqu'un a écrit un mess
|
||||||
for user,usrstats in all_usr.items():
|
for user,usrstats in all_usr.items():
|
||||||
if (((max_sign == "+" and usrstats.date < ref_duree) or ((max_sign == "-" and usrstats.date > ref_duree))) and usrstats.mess <= max_mess):
|
if (((max_sign == "+" and usrstats.date < ref_duree) or ((max_sign == "-" and usrstats.date > ref_duree))) and usrstats.mess <= max_mess):
|
||||||
reponse += "- " + usrstats.nick + "(" + user + ")" + " le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S") + "\n"
|
reponse += "- " + usrstats.nick + "(" + user + ")" + " le " + usrstats.date.strftime("%Y-%m-%d %H:%M:%S") + "\n"
|
||||||
msg(salon, reponse)
|
msg(salon, reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
if (len(args) == 0):
|
if (len(args) == 0):
|
||||||
pers = getNick(room,event)
|
pers = getNick(room,event)
|
||||||
|
@ -1219,12 +1224,12 @@ def last(room,event): # Regarde la dernière fois que quelqu'un a écrit un mess
|
||||||
pers=" ".join(args)
|
pers=" ".join(args)
|
||||||
try:
|
try:
|
||||||
usrstats = stats[room.room_id,pers]
|
usrstats = stats[room.room_id,pers]
|
||||||
msg(room,"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"),event['sender'])
|
||||||
except:
|
except:
|
||||||
msg(room,pers + " : Personne non reconnue")
|
msg(room,pers + " : Personne non reconnue",event['sender'])
|
||||||
#for cle,valeur in stats.items():
|
#for cle,valeur in stats.items():
|
||||||
# if (cle[0] == room.room_id):
|
# if (cle[0] == room.room_id):
|
||||||
# msg(room,cle[1] + "\n")
|
# msg(room,cle[1] + "\n",event['sender'])
|
||||||
|
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
|
@ -1251,7 +1256,7 @@ def actif(room,event): # Stats d'activité d'une personne
|
||||||
if us.user not in dupli_check:
|
if us.user not in dupli_check:
|
||||||
dupli_check.append(us.user)
|
dupli_check.append(us.user)
|
||||||
reponse = reponse + us.nick + " : " + str(us.mess) + "\n"
|
reponse = reponse + us.nick + " : " + str(us.mess) + "\n"
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
pers = ""
|
pers = ""
|
||||||
if (len(args) == 0):
|
if (len(args) == 0):
|
||||||
|
@ -1261,9 +1266,9 @@ def actif(room,event): # Stats d'activité d'une personne
|
||||||
try:
|
try:
|
||||||
usrstats = stats[room.room_id,pers]
|
usrstats = stats[room.room_id,pers]
|
||||||
moy = "{:10.2f}".format(usrstats.char / usrstats.mess)
|
moy = "{:10.2f}".format(usrstats.char / usrstats.mess)
|
||||||
msg(room,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",event['sender'])
|
||||||
except:
|
except:
|
||||||
msg(room,pers + " : Personne non reconnue\n")
|
msg(room,pers + " : Personne non reconnue\n",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def nb_kap(room,event):
|
def nb_kap(room,event):
|
||||||
|
@ -1284,15 +1289,15 @@ def nb_kap(room,event):
|
||||||
try:
|
try:
|
||||||
usrstats = stats[room.room_id,pers]
|
usrstats = stats[room.room_id,pers]
|
||||||
if (usrstats.kapoue < 10):
|
if (usrstats.kapoue < 10):
|
||||||
msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE!")
|
msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE!",event['sender'])
|
||||||
elif (usrstats.kapoue < 50):
|
elif (usrstats.kapoue < 50):
|
||||||
msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Pendez le!")
|
msg(room,usrstats.nick + " a crié " + str(usrstats.kapoue) + " KAPOUE! Pendez le!",event['sender'])
|
||||||
elif (usrstats.kapoue < 150):
|
elif (usrstats.kapoue < 150):
|
||||||
msg(room,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!",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,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...",event['sender'])
|
||||||
except:
|
except:
|
||||||
msg(room,pers + " : Personne non reconnue\n")
|
msg(room,pers + " : Personne non reconnue\n",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def quote(room,event): # Gestion des citations
|
def quote(room,event): # Gestion des citations
|
||||||
|
@ -1323,10 +1328,10 @@ def quote(room,event): # Gestion des citations
|
||||||
tps = datetime.now().microsecond
|
tps = datetime.now().microsecond
|
||||||
famous[nick,tps] = citation
|
famous[nick,tps] = citation
|
||||||
quotes[room.room_id] = famous
|
quotes[room.room_id] = famous
|
||||||
msg(room,"Ajout de la citation de " + nick + ":" + citation)
|
msg(room,"Ajout de la citation de " + nick + ":" + citation,event['sender'])
|
||||||
else:
|
else:
|
||||||
# message d'aide
|
# message d'aide
|
||||||
msg(room,"!quote add <nick>:<citation>")
|
msg(room,"!quote add <nick>:<citation>",event['sender'])
|
||||||
elif (len(args) > 0 and args[0] == "list"):
|
elif (len(args) > 0 and args[0] == "list"):
|
||||||
# liste les quotes
|
# liste les quotes
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
|
@ -1339,21 +1344,21 @@ def quote(room,event): # Gestion des citations
|
||||||
for cle,valeur in famous.items():
|
for cle,valeur in famous.items():
|
||||||
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
if (len(reponse) > 500):
|
if (len(reponse) > 500):
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
reponse = ""
|
reponse = ""
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
elif (args[0] == "all"):
|
elif (args[0] == "all"):
|
||||||
# toutes les quotes de tous les salons
|
# toutes les quotes de tous les salons
|
||||||
reponse = "Les citations de tous les salons : " + "\n"
|
reponse = "Les citations de tous les salons : " + "\n"
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
for rid,fame in quotes.items():
|
for rid,fame in quotes.items():
|
||||||
reponse = "Voici les reponses du salon " + rid + "\n"
|
reponse = "Voici les reponses du salon " + rid + "\n"
|
||||||
for cle,valeur in fame.items():
|
for cle,valeur in fame.items():
|
||||||
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
if (len(reponse) > 500):
|
if (len(reponse) > 500):
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
reponse = ""
|
reponse = ""
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
# les quotes du pseudo spécifié
|
# les quotes du pseudo spécifié
|
||||||
nick = " ".join(args)
|
nick = " ".join(args)
|
||||||
|
@ -1361,7 +1366,7 @@ def quote(room,event): # Gestion des citations
|
||||||
for cle,valeur in famous.items():
|
for cle,valeur in famous.items():
|
||||||
if (cle[0] == nick):
|
if (cle[0] == nick):
|
||||||
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
elif (len(args) > 1 and args[0] == "del"):
|
elif (len(args) > 1 and args[0] == "del"):
|
||||||
salon = verifPMRoom(room,event)
|
salon = verifPMRoom(room,event)
|
||||||
lmod = modos[room.room_id]
|
lmod = modos[room.room_id]
|
||||||
|
@ -1374,7 +1379,7 @@ def quote(room,event): # Gestion des citations
|
||||||
del fame[cle[0],cle[1]]
|
del fame[cle[0],cle[1]]
|
||||||
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
break
|
break
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
elif (event['sender'] in lmod):
|
elif (event['sender'] in lmod):
|
||||||
id = args[1]
|
id = args[1]
|
||||||
reponse = "Voici la citation supprimée : \n"
|
reponse = "Voici la citation supprimée : \n"
|
||||||
|
@ -1385,9 +1390,9 @@ def quote(room,event): # Gestion des citations
|
||||||
del fame[cle[0],cle[1]]
|
del fame[cle[0],cle[1]]
|
||||||
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
break
|
break
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(salon,"Vous n'êtes pas autorisés à supprimer des citations.")
|
msg(salon,"Vous n'êtes pas autorisés à supprimer des citations.",event['sender'])
|
||||||
elif (len(args) > 0):
|
elif (len(args) > 0):
|
||||||
# cite une quote d'une personne precise
|
# cite une quote d'une personne precise
|
||||||
nick = " ".join(args)
|
nick = " ".join(args)
|
||||||
|
@ -1398,7 +1403,7 @@ def quote(room,event): # Gestion des citations
|
||||||
if (len(phrases) > 0 ):
|
if (len(phrases) > 0 ):
|
||||||
reponses(room,phrases)
|
reponses(room,phrases)
|
||||||
else:
|
else:
|
||||||
msg(room,"Je n'ai pas de citations pour " + nick)
|
msg(room,"Je n'ai pas de citations pour " + nick,event['sender'])
|
||||||
else:
|
else:
|
||||||
# cite une quote aleatoire
|
# cite une quote aleatoire
|
||||||
phrases = []
|
phrases = []
|
||||||
|
@ -1407,7 +1412,7 @@ def quote(room,event): # Gestion des citations
|
||||||
if (len(phrases) > 0 ):
|
if (len(phrases) > 0 ):
|
||||||
reponses(room,phrases)
|
reponses(room,phrases)
|
||||||
else:
|
else:
|
||||||
msg(room,"Je n'ai pas de citations pour ce salon")
|
msg(room,"Je n'ai pas de citations pour ce salon",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def salon(room,event): # Gestion des listes de salons recommandes
|
def salon(room,event): # Gestion des listes de salons recommandes
|
||||||
|
@ -1441,7 +1446,7 @@ def salon(room,event): # Gestion des listes de salons recommandes
|
||||||
desc = " ".join(args)
|
desc = " ".join(args)
|
||||||
famous[ref] = desc
|
famous[ref] = desc
|
||||||
salons[room.room_id] = famous
|
salons[room.room_id] = famous
|
||||||
msg(room,"Ajout du salon " + ref + " : " + desc)
|
msg(room,"Ajout du salon " + ref + " : " + desc,event['sender'])
|
||||||
elif (len(args) > 1 and args[0] == "del"):
|
elif (len(args) > 1 and args[0] == "del"):
|
||||||
salon = verifPMRoom(room,event)
|
salon = verifPMRoom(room,event)
|
||||||
lmod = modos[room.room_id]
|
lmod = modos[room.room_id]
|
||||||
|
@ -1455,7 +1460,7 @@ def salon(room,event): # Gestion des listes de salons recommandes
|
||||||
del fame[cle]
|
del fame[cle]
|
||||||
reponse = reponse + rid + " / " + cle + " : " + valeur + "\n"
|
reponse = reponse + rid + " / " + cle + " : " + valeur + "\n"
|
||||||
break
|
break
|
||||||
msg(room,reponse)
|
msg(room,reponse,event['sender'])
|
||||||
elif (event['sender'] in lmod):
|
elif (event['sender'] in lmod):
|
||||||
id = args[1]
|
id = args[1]
|
||||||
reponse = "Voici le salon supprimé : \n"
|
reponse = "Voici le salon supprimé : \n"
|
||||||
|
@ -1466,20 +1471,20 @@ def salon(room,event): # Gestion des listes de salons recommandes
|
||||||
del fame[cle]
|
del fame[cle]
|
||||||
reponse = reponse + rid + " / " + cle + " : " + valeur + "\n"
|
reponse = reponse + rid + " / " + cle + " : " + valeur + "\n"
|
||||||
break
|
break
|
||||||
msg(room,reponse)
|
msg(room,reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(salon,"Vous n'êtes pas autorisés à supprimer des salons.")
|
msg(salon,"Vous n'êtes pas autorisés à supprimer des salons.",event['sender'])
|
||||||
elif (len(args) > 0):
|
elif (len(args) > 0):
|
||||||
# cite un salon precis
|
# cite un salon precis
|
||||||
ref = args[0]
|
ref = args[0]
|
||||||
trouve = 0
|
trouve = 0
|
||||||
for cle,valeur in famous.items():
|
for cle,valeur in famous.items():
|
||||||
if (cle == ref):
|
if (cle == ref):
|
||||||
msg(salon,cle + " : " + valeur)
|
msg(salon,cle + " : " + valeur,event['sender'])
|
||||||
trouve = 1
|
trouve = 1
|
||||||
break
|
break
|
||||||
if (trouve == 0):
|
if (trouve == 0):
|
||||||
msg(room,"Je n'ai pas de salons nomme " + ref)
|
msg(room,"Je n'ai pas de salons nomme " + ref,event['sender'])
|
||||||
else:
|
else:
|
||||||
# cite tous les salons
|
# cite tous les salons
|
||||||
reponse = ""
|
reponse = ""
|
||||||
|
@ -1491,9 +1496,9 @@ def salon(room,event): # Gestion des listes de salons recommandes
|
||||||
reponse = reponse + cle + " : " + valeur + "\n"
|
reponse = reponse + cle + " : " + valeur + "\n"
|
||||||
trouve = 1
|
trouve = 1
|
||||||
if (trouve == 0):
|
if (trouve == 0):
|
||||||
msg(room,"Je n'ai pas de salons recommandes pour ce salon")
|
msg(room,"Je n'ai pas de salons recommandes pour ce salon",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,reponse)
|
msg(room,reponse,event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def addquote(room,event): # enregistrer les citations mode reponses matrix
|
def addquote(room,event): # enregistrer les citations mode reponses matrix
|
||||||
|
@ -1539,7 +1544,7 @@ def addquote(room,event): # enregistrer les citations mode reponses matrix
|
||||||
# enregistrement de la citation
|
# enregistrement de la citation
|
||||||
famous[auteur,tps] = content
|
famous[auteur,tps] = content
|
||||||
citations[room.room_id] = famous
|
citations[room.room_id] = famous
|
||||||
msg(room,"Ajout de la citation de " + auteur + ":")
|
msg(room,"Ajout de la citation de " + auteur + ":",event['sender'])
|
||||||
bot.client.api.send_message_event(room.room_id, 'm.room.message', content, None, None)
|
bot.client.api.send_message_event(room.room_id, 'm.room.message', content, None, None)
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
|
@ -1568,7 +1573,7 @@ def showquote(room, event): # afficher les citations mode reponse matrix
|
||||||
if (len(phrases) > 0 ):
|
if (len(phrases) > 0 ):
|
||||||
reponses(room,phrases,True)
|
reponses(room,phrases,True)
|
||||||
else:
|
else:
|
||||||
msg(room,"Je n'ai pas de citations pour " + nick)
|
msg(room,"Je n'ai pas de citations pour " + nick,event['sender'])
|
||||||
else:
|
else:
|
||||||
# cite une quote aleatoire
|
# cite une quote aleatoire
|
||||||
phrases = []
|
phrases = []
|
||||||
|
@ -1577,7 +1582,7 @@ def showquote(room, event): # afficher les citations mode reponse matrix
|
||||||
if (len(phrases) > 0 ):
|
if (len(phrases) > 0 ):
|
||||||
reponses(room,phrases,True)
|
reponses(room,phrases,True)
|
||||||
else:
|
else:
|
||||||
msg(room,"Je n'ai pas de citations pour ce salon")
|
msg(room,"Je n'ai pas de citations pour ce salon",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def biere(room,event): # Gestion des boissons
|
def biere(room,event): # Gestion des boissons
|
||||||
|
@ -1629,10 +1634,10 @@ def biere(room,event): # Gestion des boissons
|
||||||
tps = datetime.now().microsecond
|
tps = datetime.now().microsecond
|
||||||
breuvages[nick,tps] = citation
|
breuvages[nick,tps] = citation
|
||||||
bieres[room.room_id] = breuvages
|
bieres[room.room_id] = breuvages
|
||||||
msg(room,"Ajout du breuvage " + nick + ":" + citation)
|
msg(room,"Ajout du breuvage " + nick + ":" + citation,event['sender'])
|
||||||
else:
|
else:
|
||||||
# message d'aide
|
# message d'aide
|
||||||
msg(room,"!biere add <nick>:<citation>")
|
msg(room,"!biere add <nick>:<citation>",event['sender'])
|
||||||
elif (len(args) > 0 and args[0] == "list"):
|
elif (len(args) > 0 and args[0] == "list"):
|
||||||
# liste les quotes
|
# liste les quotes
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
|
@ -1645,21 +1650,21 @@ def biere(room,event): # Gestion des boissons
|
||||||
for cle,valeur in breuvages.items():
|
for cle,valeur in breuvages.items():
|
||||||
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
if (len(reponse) > 500):
|
if (len(reponse) > 500):
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
reponse = ""
|
reponse = ""
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
elif (args[0] == "all"):
|
elif (args[0] == "all"):
|
||||||
# tous les breuvages de tous les salons
|
# tous les breuvages de tous les salons
|
||||||
reponse = "Les breuvages de tous les salons : " + "\n"
|
reponse = "Les breuvages de tous les salons : " + "\n"
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
for rid,fame in bieres.items():
|
for rid,fame in bieres.items():
|
||||||
reponse = "Voici les reponses du salon " + rid + "\n"
|
reponse = "Voici les reponses du salon " + rid + "\n"
|
||||||
for cle,valeur in fame.items():
|
for cle,valeur in fame.items():
|
||||||
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
if (len(reponse) > 500):
|
if (len(reponse) > 500):
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
reponse = ""
|
reponse = ""
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
# les breuvages du pseudo spécifié
|
# les breuvages du pseudo spécifié
|
||||||
nick = " ".join(args)
|
nick = " ".join(args)
|
||||||
|
@ -1667,7 +1672,7 @@ def biere(room,event): # Gestion des boissons
|
||||||
for cle,valeur in breuvages.items():
|
for cle,valeur in breuvages.items():
|
||||||
if (cle[0] == nick):
|
if (cle[0] == nick):
|
||||||
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
elif (len(args) > 1 and args[0] == "del"):
|
elif (len(args) > 1 and args[0] == "del"):
|
||||||
salon = verifPMRoom(room,event)
|
salon = verifPMRoom(room,event)
|
||||||
lmod = modos[room.room_id]
|
lmod = modos[room.room_id]
|
||||||
|
@ -1680,7 +1685,7 @@ def biere(room,event): # Gestion des boissons
|
||||||
del fame[cle[0],cle[1]]
|
del fame[cle[0],cle[1]]
|
||||||
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
break
|
break
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
elif (event['sender'] in lmod):
|
elif (event['sender'] in lmod):
|
||||||
id = args[1]
|
id = args[1]
|
||||||
reponse = "Voici le breuvage supprimé : \n"
|
reponse = "Voici le breuvage supprimé : \n"
|
||||||
|
@ -1691,9 +1696,9 @@ def biere(room,event): # Gestion des boissons
|
||||||
del fame[cle[0],cle[1]]
|
del fame[cle[0],cle[1]]
|
||||||
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
reponse = reponse + rid + " / " + cle[0] + " / " + str(cle[1]) + " : " + valeur + "\n"
|
||||||
break
|
break
|
||||||
msg(salon,reponse)
|
msg(salon,reponse,event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(salon,"Vous n'êtes pas autorisés à supprimer des breuvages.")
|
msg(salon,"Vous n'êtes pas autorisés à supprimer des breuvages.",event['sender'])
|
||||||
elif (len(args) > 0):
|
elif (len(args) > 0):
|
||||||
# cite une reponse d'un breuvage precis
|
# cite une reponse d'un breuvage precis
|
||||||
nick = " ".join(args)
|
nick = " ".join(args)
|
||||||
|
@ -1707,7 +1712,7 @@ def biere(room,event): # Gestion des boissons
|
||||||
if (len(phrases) > 0 ):
|
if (len(phrases) > 0 ):
|
||||||
reponses(room,phrases)
|
reponses(room,phrases)
|
||||||
else:
|
else:
|
||||||
msg(room,"Je n'ai pas de " + nick + " en stock!")
|
msg(room,"Je n'ai pas de " + nick + " en stock!",event['sender'])
|
||||||
else:
|
else:
|
||||||
# cite une réponse d'un breuvage aleatoire
|
# cite une réponse d'un breuvage aleatoire
|
||||||
phrases = []
|
phrases = []
|
||||||
|
@ -1719,7 +1724,7 @@ def biere(room,event): # Gestion des boissons
|
||||||
if (len(phrases) > 0 ):
|
if (len(phrases) > 0 ):
|
||||||
reponses(room,phrases)
|
reponses(room,phrases)
|
||||||
else:
|
else:
|
||||||
msg(room,"Je n'ai pas de breuvages pour ce salon")
|
msg(room,"Je n'ai pas de breuvages pour ce salon",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def boissons(room,event): # Gestion des alias de boissons
|
def boissons(room,event): # Gestion des alias de boissons
|
||||||
|
@ -1769,10 +1774,10 @@ def accueil(room,event): # Mettre un message d'accueil
|
||||||
reponse = " ".join(args)
|
reponse = " ".join(args)
|
||||||
if (len(args) > 0):
|
if (len(args) > 0):
|
||||||
welcome[room.room_id] = reponse
|
welcome[room.room_id] = reponse
|
||||||
msg(room,"Le message d'accueil est désormais : " + reponse)
|
msg(room,"Le message d'accueil est désormais : " + reponse,event['sender'])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
msg(salon,"Vous n'êtes pas autorisés à modifier le message d'accueil.")
|
msg(salon,"Vous n'êtes pas autorisés à modifier le message d'accueil.",event['sender'])
|
||||||
|
|
||||||
def bienvenue(event): # Affichage d'un message d'accueil aux nouveaux venus
|
def bienvenue(event): # Affichage d'un message d'accueil aux nouveaux venus
|
||||||
room_id = event['room_id']
|
room_id = event['room_id']
|
||||||
|
@ -1801,7 +1806,7 @@ def bienvenue(event): # Affichage d'un message d'accueil aux nouveaux venus
|
||||||
except:
|
except:
|
||||||
reponse = ""
|
reponse = ""
|
||||||
if (membership == "join" and prev_member != "join"):
|
if (membership == "join" and prev_member != "join"):
|
||||||
msg(room,"Bienvenue sur " + alias + ", " + nick + ". " + reponse)
|
msg(room,"Bienvenue sur " + alias + ", " + nick + ". " + reponse,event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def addmails(room,event): # Abonnements mail aux messages
|
def addmails(room,event): # Abonnements mail aux messages
|
||||||
|
@ -1826,9 +1831,9 @@ def addmails(room,event): # Abonnements mail aux messages
|
||||||
if (not mail in lmails):
|
if (not mail in lmails):
|
||||||
lmails.append(mail)
|
lmails.append(mail)
|
||||||
mails[room.room_id] = lmails
|
mails[room.room_id] = lmails
|
||||||
msg(room,mail + " recevra des mails.")
|
msg(room,mail + " recevra des mails.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,mail + " reçoit déjà des mails.")
|
msg(room,mail + " reçoit déjà des mails.",event['sender'])
|
||||||
elif (len(args) > 1 and args[0] == "del"):
|
elif (len(args) > 1 and args[0] == "del"):
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
mail = args[0]
|
mail = args[0]
|
||||||
|
@ -1836,13 +1841,13 @@ def addmails(room,event): # Abonnements mail aux messages
|
||||||
place = lmails.index(mail)
|
place = lmails.index(mail)
|
||||||
del lmails[place]
|
del lmails[place]
|
||||||
mails[room.room_id] = lmails
|
mails[room.room_id] = lmails
|
||||||
msg(room,mail + " ne recevra plus de mails.")
|
msg(room,mail + " ne recevra plus de mails.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,mail + " ne reçoit pas de mails.")
|
msg(room,mail + " ne reçoit pas de mails.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,"\n".join(lmails))
|
msg(room,"\n".join(lmails),event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(salon,"Vous n'êtes pas autorisés à définir les réceptions de mails pour ce salon.")
|
msg(salon,"Vous n'êtes pas autorisés à définir les réceptions de mails pour ce salon.",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def envoi_mail(room,event): # envoi des messages aux abonnés par mail
|
def envoi_mail(room,event): # envoi des messages aux abonnés par mail
|
||||||
|
@ -1858,12 +1863,15 @@ def envoi_mail(room,event): # envoi des messages aux abonnés par mail
|
||||||
except:
|
except:
|
||||||
lmails = []
|
lmails = []
|
||||||
for mail in lmails:
|
for mail in lmails:
|
||||||
serveur = smtplib.SMTP(msmtp, mport)
|
if (malt == 1):
|
||||||
serveur.starttls()
|
os.system('echo "' + event['content']['body'] + '" | mailx -s "' + event['sender'] + '" -r ' + msender + ' ' + mail)
|
||||||
serveur.login(msender, mpass)
|
else:
|
||||||
message = event['sender'] + " : " + event['content']['body']
|
serveur = smtplib.SMTP(msmtp, mport)
|
||||||
serveur.sendmail(msender, mail, message)
|
serveur.starttls()
|
||||||
serveur.quit()
|
serveur.login(msender, mpass)
|
||||||
|
message = event['sender'] + " : " + event['content']['body']
|
||||||
|
serveur.sendmail(msender, mail, message)
|
||||||
|
serveur.quit()
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def modo(room,event): # Definition d'un moderateur
|
def modo(room,event): # Definition d'un moderateur
|
||||||
|
@ -1882,9 +1890,9 @@ def modo(room,event): # Definition d'un moderateur
|
||||||
if (not candidat in lmod):
|
if (not candidat in lmod):
|
||||||
lmod.append(candidat)
|
lmod.append(candidat)
|
||||||
modos[room.room_id] = lmod
|
modos[room.room_id] = lmod
|
||||||
msg(room,candidat + " devient moderateur.")
|
msg(room,candidat + " devient moderateur.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,candidat + " est déjà moderateur.")
|
msg(room,candidat + " est déjà moderateur.",event['sender'])
|
||||||
elif (len(args) > 1 and args[0] == "del"):
|
elif (len(args) > 1 and args[0] == "del"):
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
candidat = " ".join(args)
|
candidat = " ".join(args)
|
||||||
|
@ -1892,13 +1900,13 @@ def modo(room,event): # Definition d'un moderateur
|
||||||
place = lmod.index(candidat)
|
place = lmod.index(candidat)
|
||||||
del lmod[place]
|
del lmod[place]
|
||||||
modos[room.room_id] = lmod
|
modos[room.room_id] = lmod
|
||||||
msg(room,candidat + " n'est plus moderateur.")
|
msg(room,candidat + " n'est plus moderateur.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,candidat + " n'est pas moderateur.")
|
msg(room,candidat + " n'est pas moderateur.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,"\n".join(lmod))
|
msg(room,"\n".join(lmod),event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(salon,"Vous n'êtes pas autorisés à définir les modérateurs.")
|
msg(salon,"Vous n'êtes pas autorisés à définir les modérateurs.",event['sender'])
|
||||||
|
|
||||||
@not_myself
|
@not_myself
|
||||||
def module(room,event): # Definition des modules d'un salon
|
def module(room,event): # Definition des modules d'un salon
|
||||||
|
@ -1916,18 +1924,18 @@ def module(room,event): # Definition des modules d'un salon
|
||||||
rmod = args[0]
|
rmod = args[0]
|
||||||
if (rmod in liste_mod):
|
if (rmod in liste_mod):
|
||||||
modules[room.room_id, rmod] = True
|
modules[room.room_id, rmod] = True
|
||||||
msg(room,"Module : " + rmod + " activé.")
|
msg(room,"Module : " + rmod + " activé.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,"Module : " + rmod + " inconnu.")
|
msg(room,"Module : " + rmod + " inconnu.",event['sender'])
|
||||||
#print(liste_mod)
|
#print(liste_mod)
|
||||||
elif (len(args) == 2 and args[0] == "del"):
|
elif (len(args) == 2 and args[0] == "del"):
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
rmod = args[0]
|
rmod = args[0]
|
||||||
if (rmod in liste_mod):
|
if (rmod in liste_mod):
|
||||||
modules[room.room_id, rmod] = False
|
modules[room.room_id, rmod] = False
|
||||||
msg(room,"Module : " + rmod + " désactivé.")
|
msg(room,"Module : " + rmod + " désactivé.",event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,"Module : " + rmod + " inconnu.")
|
msg(room,"Module : " + rmod + " inconnu.",event['sender'])
|
||||||
else:
|
else:
|
||||||
# Lister les modules actifs du salon
|
# Lister les modules actifs du salon
|
||||||
rmod = ""
|
rmod = ""
|
||||||
|
@ -1936,16 +1944,16 @@ def module(room,event): # Definition des modules d'un salon
|
||||||
rmod = rmod + cle[1] + ", "
|
rmod = rmod + cle[1] + ", "
|
||||||
if (len(rmod) > 1):
|
if (len(rmod) > 1):
|
||||||
rmod = rmod[:-2]
|
rmod = rmod[:-2]
|
||||||
msg(room,"Modules actuels : " + rmod)
|
msg(room,"Modules actuels : " + rmod,event['sender'])
|
||||||
# Lister les modules disponibles
|
# Lister les modules disponibles
|
||||||
dmod = ""
|
dmod = ""
|
||||||
for val in liste_mod:
|
for val in liste_mod:
|
||||||
dmod = dmod + val + ", "
|
dmod = dmod + val + ", "
|
||||||
if (len(dmod) > 1):
|
if (len(dmod) > 1):
|
||||||
dmod = dmod[:-2]
|
dmod = dmod[:-2]
|
||||||
msg(room,"Modules disponibles : " + dmod)
|
msg(room,"Modules disponibles : " + dmod,event['sender'])
|
||||||
else:
|
else:
|
||||||
msg(room,"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.",event['sender'])
|
||||||
|
|
||||||
|
|
||||||
def invitations(room_id, state): # Reponse aux invitations
|
def invitations(room_id, state): # Reponse aux invitations
|
||||||
|
@ -1991,10 +1999,10 @@ def kick(room, event): # kick une liste de membres
|
||||||
try:
|
try:
|
||||||
bot.client.api.kick_user(room.room_id, args[0], reason="")
|
bot.client.api.kick_user(room.room_id, args[0], reason="")
|
||||||
except:
|
except:
|
||||||
msg(room, "Vous ne pouvez pas expulser args[0]")
|
msg(room, "Vous ne pouvez pas expulser args[0]",event['sender'])
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
else:
|
else:
|
||||||
msg(room,"Vous n'êtes pas autorisés à kicker des membres de ce salon.")
|
msg(room,"Vous n'êtes pas autorisés à kicker des membres de ce salon.",event['sender'])
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -2025,11 +2033,13 @@ def main():
|
||||||
|
|
||||||
if ('MAIL' in config):
|
if ('MAIL' in config):
|
||||||
try:
|
try:
|
||||||
|
malt = config['MAIL']['malt']
|
||||||
msender = config['MAIL']['msender']
|
msender = config['MAIL']['msender']
|
||||||
mpass = config['MAIL']['mpass']
|
mpass = config['MAIL']['mpass']
|
||||||
msmtp = config['MAIL']['msmtp']
|
msmtp = config['MAIL']['msmtp']
|
||||||
mport = config['MAIL']['mport']
|
mport = config['MAIL']['mport']
|
||||||
except:
|
except:
|
||||||
|
malt = 0
|
||||||
msender = ""
|
msender = ""
|
||||||
mpass = ""
|
mpass = ""
|
||||||
msmtp = ""
|
msmtp = ""
|
||||||
|
|
Loading…
Reference in a new issue