Browse Source

debug cristal

master
Nemesis 6 years ago
parent
commit
c4f8f3a34c
  1. 32
      asmodee.py

32
asmodee.py

@ -91,8 +91,7 @@ def modos_read():
modos = loader.load() modos = loader.load()
except: except:
modos = {} modos = {}
def save_obj()
def signal_handler(signal, frame): # Sauvegarder les données persistantes avant sortie
with open("horloge", "wb") as fichier: with open("horloge", "wb") as fichier:
saver = pickle.Pickler(fichier) saver = pickle.Pickler(fichier)
saver.dump(clock) saver.dump(clock)
@ -111,6 +110,9 @@ def signal_handler(signal, frame): # Sauvegarder les données persistantes avant
with open("moderateurs", "wb") as fichier: with open("moderateurs", "wb") as fichier:
saver = pickle.Pickler(fichier) saver = pickle.Pickler(fichier)
saver.dump(modos) saver.dump(modos)
def signal_handler(signal, frame): # Sauvegarder les données persistantes avant sortie
save_obj()
sys.exit(0) sys.exit(0)
class Userstats: #Pour garder des stats sur les users class Userstats: #Pour garder des stats sur les users
@ -221,11 +223,11 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message
try: try:
client_id = bot.client.user_id.split("@")[1].split(":")[0] client_id = bot.client.user_id.split("@")[1].split(":")[0]
except: except:
client_id = "asmodee_d" client_id = "asmodee"
try: try:
client_host = bot.client.user_id.split("@")[1].split(":")[1] client_host = bot.client.user_id.split("@")[1].split(":")[1]
except: except:
client_host = "ombreport.info_d" client_host = "ombreport.info"
alias = "#" + client_id + "_" + nick + ":" + client_host alias = "#" + client_id + "_" + nick + ":" + client_host
salon = None salon = None
#salons = bot.client.rooms #salons = bot.client.rooms
@ -249,6 +251,10 @@ def verifPMRoom(room, event): # Pour obtenir ou créer un salon pour les message
salon.invite_user(event['sender']) salon.invite_user(event['sender'])
salon.add_room_alias(alias) salon.add_room_alias(alias)
salon.update_aliases() salon.update_aliases()
#Il faudrait recharger le bot pour prendre en compte le nouveau salon dans les listener
#Mais sans interrompre la requête
#save()
#main()
except: except:
print("Impossible de creer ou joindre " + alias) print("Impossible de creer ou joindre " + alias)
return None return None
@ -267,7 +273,10 @@ def getNick(room, event): # Obtenir le DisplayName à partir du mxid
try: try:
for user in members: for user in members:
if user.user_id == event['sender']: if user.user_id == event['sender']:
nick = user.get_friendly_name() nick = user.get_friendly_name()
break
if (len(nick) == 0):
nick = event['sender']
except: except:
try: try:
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0] nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
@ -335,10 +344,14 @@ def help_center(room,event,name,private): # Aide sur les commandes disponibles
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é") 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é")
elif (re.search("biere", args[0])): 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é") 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é")
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.'")
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)\n- !modo add <mxid> : Ajoute une personne comme modérateur du salon\n- !modo del <mxid> : Retire une personne des modérateurs.")
else: else:
salon.send_text("A venir") salon.send_text("A venir")
else: 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- :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") 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- !accueil <message> : Modifie le message d'accueil\n- !modo : Affiche les modérateurs du 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é 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?
@ -771,13 +784,17 @@ def cristal(room, event):
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] != '?'):
room.send_text("Utilisation : !cristal <Quel est votre question?>") room.send_text("Utilisation : !cristal <Quelle est votre question?>")
else: else:
args[len(args)-1] = args[len(args)-1][0:-1] args[len(args)-1] = args[len(args)-1][0:-1]
print(args[len(args)-1])
args = list(set(args).difference(set(["Dans", "Jusque", "le", "la", "les", "de", "des", "un", "une", "est", "sont", "serait", "seraient", "était", "étaient", "sera", "seront", "ont", "aurait", "auraient", "aura", "auront", "a", "à"]))) args = list(set(args).difference(set(["Dans", "Jusque", "le", "la", "les", "de", "des", "un", "une", "est", "sont", "serait", "seraient", "était", "étaient", "sera", "seront", "ont", "aurait", "auraient", "aura", "auront", "a", "à"])))
conj = args[0] conj = args[0]
args.pop(0) args.pop(0)
print(conj)
print(args)
cle = max(args, key=len) cle = max(args, key=len)
print(cle)
if (conj == "Est-ce" or conj == "est-ce"): if (conj == "Est-ce" or conj == "est-ce"):
# traitement Oui/non # traitement Oui/non
phrases = [] phrases = []
@ -1311,6 +1328,7 @@ def invitations(room_id, state): # Reponse aux invitations
bot.client.join_room(room_id) bot.client.join_room(room_id)
time.sleep(2) time.sleep(2)
del bot del bot
save()
main() main()
except: except:
print("Impossible de rejoindre ce salon") print("Impossible de rejoindre ce salon")

Loading…
Cancel
Save