Browse Source

ne pas prendre en compte ses propres messages

master
Nemesis 6 years ago
parent
commit
0ad9c5665e
  1. 46
      asmodee.py

46
asmodee.py

@ -42,6 +42,7 @@ admins = [] # Admins du bot
modos = {} # Moderateurs des salons
modules = {} # Modules activés par salon
liste_mod = [] # Modules disponibles
USERNAME = ""
# Chargement des données persistantes
def horloge_read():
@ -152,6 +153,15 @@ def signal_handler(signal, frame): # Sauvegarder les données persistantes avant
save_obj()
sys.exit(0)
def not_myself(f):
def handler(room, event):
if event['sender'] == USERNAME:
return
f(room, event)
return handler
class Userstats: #Pour garder des stats sur les users
def __init__(self,room,user,nick):
self.room = room
@ -313,7 +323,6 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message
print("il etait deja dedans, c'est sale")
return salon
def getNick(room, event): # Obtenir le DisplayName à partir du mxid
members = room.get_joined_members()
nick = ""
@ -331,6 +340,7 @@ def getNick(room, event): # Obtenir le DisplayName à partir du mxid
nick = event['sender']
return(nick)
@not_myself
def card(room, event): # Tirer une carte du paquet sans la retirer
global modules
try:
@ -341,6 +351,7 @@ def card(room, event): # Tirer une carte du paquet sans la retirer
reponse = cartes_base[random.randrange(0,len(cartes_base))]
msg(room,reponse)
@not_myself
def carte(room, event): # Tirer une carte du paquet en la retirant ensuite
global modules
try:
@ -361,8 +372,10 @@ def carte(room, event): # Tirer une carte du paquet en la retirant ensuite
msg(room,cartes[i])
cartes.pop(i)
@not_myself
def help(room, event): # Aide en message privé
help_center(room,event,"help",True)
@not_myself
def aide(room, event): # Aide dans le salon
help_center(room,event,"aide",False)
def help_center(room,event,name,private): # Aide sur les commandes disponibles
@ -530,6 +543,7 @@ def rolls(result,jet,type,nb,explosif,noadd,wild,f,g,ars,relance,mitige,z): # La
#print("fin rolls : " + str(result) + "|" + str(total) + "|" + str(jet))
return (result,total,jet)
@not_myself
def entryPoint(room, event): # Analyse des commandes ":", point d'entrée pour les jets de dés
global modules
try:
@ -812,6 +826,7 @@ def reponses(room, phrases, content=False): # Afficher une réponse aléatoire d
i = random.randrange(0,len(phrases))
msg(room,phrases[i],content)
@not_myself
def jdr(room, event):
global modules
try:
@ -826,6 +841,7 @@ def jdr(room, event):
phrases.append("Bon, c'est quand la prochaine partie " + nick + "?")
reponses(room, phrases)
@not_myself
def gens(room, event):
global modules
try:
@ -854,6 +870,7 @@ def va(room, event):
phrases.append("Attention a " + nick + ", la suite est 'not safe for depression'")
reponses(room, phrases)
@not_myself
def hi_callback(room, event):
global modules
try:
@ -870,6 +887,7 @@ def hi_callback(room, event):
phrases.append("Oh non, et voilà de nouveau " + nick + "...")
reponses(room, phrases)
@not_myself
def liste(room, event): # Afficher un élement aléatoire d'une liste fournie
global modules
try:
@ -897,6 +915,7 @@ def liste(room, event): # Afficher un élement aléatoire d'une liste fournie
else:
msg(room,"Utilisation : !liste <options/de/la/liste> [nombre d elements]")
@not_myself
def cristal(room, event): # Affiche une réponse à une question posée
global modules
try:
@ -974,6 +993,7 @@ def cristal(room, event): # Affiche une réponse à une question posée
phrases.append("Tu portes quelque chose de sombre, je refuse de me laisser souiller.")
reponses(room, phrases)
@not_myself
def horloge(room, event): # Gestion des horloges PBTA
global modules
try:
@ -1017,6 +1037,7 @@ def horloge(room, event): # Gestion des horloges PBTA
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.")
@not_myself
def statistiques(room,event): # Enregistrement des statistiques
global modules
try:
@ -1074,6 +1095,7 @@ def statistiques(room,event): # Enregistrement des statistiques
stats[room.room_id,user] = usrstats1
stats[room.room_id,nick] = usrstats2
@not_myself
def last(room,event): # Regarde la dernière fois que quelqu'un a écrit un message
global modules
try:
@ -1098,6 +1120,7 @@ def last(room,event): # Regarde la dernière fois que quelqu'un a écrit un mess
# if (cle[0] == room.room_id):
# msg(room,cle[1] + "\n")
@not_myself
def actif(room,event): # Stats d'activité d'une personne
global modules
try:
@ -1120,6 +1143,7 @@ def actif(room,event): # Stats d'activité d'une personne
except:
msg(room,pers + " : Personne non reconnue\n")
@not_myself
def nb_kap(room,event):
global modules
try:
@ -1148,6 +1172,7 @@ def nb_kap(room,event):
except:
msg(room,pers + " : Personne non reconnue\n")
@not_myself
def quote(room,event): # Gestion des citations
global modules
try:
@ -1262,6 +1287,7 @@ def quote(room,event): # Gestion des citations
else:
msg(room,"Je n'ai pas de citations pour ce salon")
@not_myself
def addquote(room,event): # enregistrer les citations mode reponses matrix
global modules
try:
@ -1275,12 +1301,14 @@ def addquote(room,event): # enregistrer les citations mode reponses matrix
if len(json.dumps(content)) > 420:
# Enlève la commande de la citation
try:
content['body'] = content['body'].replace("\naddquote", " ")
content['body'] = content['body'].replace("\n!addquote", " ")
content['body'] = content['body'].replace("\n!", "\n")
except:
print("\n\nerreur body " + json.dumps(content))
try:
content['formatted_body'] = content['formatted_body'].replace("<p>addquote</p>\n", "")
content['formatted_body'] = content['formatted_body'].replace("addquote", "")
content['formatted_body'] = content['formatted_body'].replace("<p>!addquote</p>\n", "")
content['formatted_body'] = content['formatted_body'].replace("!addquote", "")
content['formatted_body'] = content['formatted_body'].replace("<p>!", "<p>")
except:
print("\n\nerreur formatted_body " + json.dumps(content))
@ -1306,6 +1334,7 @@ def addquote(room,event): # enregistrer les citations mode reponses matrix
msg(room,"Ajout de la citation de " + auteur + ":")
bot.client.api.send_message_event(room.room_id, 'm.room.message', content, None, None)
@not_myself
def showquote(room, event): # afficher les citations mode reponse matrix
global modules
try:
@ -1342,7 +1371,7 @@ def showquote(room, event): # afficher les citations mode reponse matrix
else:
msg(room,"Je n'ai pas de citations pour ce salon")
@not_myself
def biere(room,event): # Gestion des boissons
global modules
try:
@ -1476,6 +1505,7 @@ def biere(room,event): # Gestion des boissons
else:
msg(room,"Je n'ai pas de breuvages pour ce salon")
@not_myself
def boissons(room,event): # Gestion des alias de boissons
global modules
try:
@ -1507,6 +1537,7 @@ def boissons(room,event): # Gestion des alias de boissons
biere(room,event)
@not_myself
def accueil(room,event): # Mettre un message d'accueil
global modules
try:
@ -1556,6 +1587,7 @@ def bienvenue(event): # Affichage d'un message d'accueil aux nouveaux venus
if (membership == "join" and prev_member != "join"):
msg(room,"Bienvenue sur " + alias + ", " + nick + ". " + reponse)
@not_myself
def modo(room,event): # Definition d'un moderateur
global modos
lmod = []
@ -1590,6 +1622,7 @@ def modo(room,event): # Definition d'un moderateur
else:
msg(salon,"Vous n'êtes pas autorisés à définir les modérateurs.")
@not_myself
def module(room,event): # Definition des modules d'un salon
lmod = []
try:
@ -1662,6 +1695,7 @@ def invitations(room_id, state): # Reponse aux invitations
main()
def main():
global USERNAME
config = configparser.ConfigParser()
config.read('asmodee.ini')
USERNAME = "" # Bot's username
@ -1761,7 +1795,7 @@ def main():
quote_handler = MCommandHandler("quote", quote)
bot.add_handler(quote_handler)
citations_read()
addquote_handler = MEndHandler("addquote", addquote)
addquote_handler = MEndHandler("!addquote", addquote)
bot.add_handler(addquote_handler)
showquote_handler = MCommandHandler("showquote", showquote)
bot.add_handler(showquote_handler)

Loading…
Cancel
Save