generated from Nemesis/Exemple
Cristal + horloge
This commit is contained in:
parent
dd95c35603
commit
759702dbe8
1 changed files with 148 additions and 50 deletions
198
asmodee.py
198
asmodee.py
|
@ -3,6 +3,9 @@ import re
|
||||||
import copy
|
import copy
|
||||||
import configparser
|
import configparser
|
||||||
import io
|
import io
|
||||||
|
import signal
|
||||||
|
import sys
|
||||||
|
import pickle
|
||||||
|
|
||||||
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
|
||||||
|
@ -21,6 +24,26 @@ cartes_base = ["As de carreau", "2 de carreau", "3 de carreau", "4 de carreau",
|
||||||
"10 de trefle", "Valet de trefle", "Dame de trefle", "Roi de trefle", "Joker rouge", "Joker noir"]
|
"10 de trefle", "Valet de trefle", "Dame de trefle", "Roi de trefle", "Joker rouge", "Joker noir"]
|
||||||
cartes=list(cartes_base)
|
cartes=list(cartes_base)
|
||||||
bot = None
|
bot = None
|
||||||
|
clock = {}
|
||||||
|
|
||||||
|
def horloge_read():
|
||||||
|
global clock
|
||||||
|
try:
|
||||||
|
with open("horloge", "rb") as fichier:
|
||||||
|
loader = pickle.Unpickler(fichier)
|
||||||
|
clock = loader.load()
|
||||||
|
except:
|
||||||
|
if (!fichier.closed):
|
||||||
|
fichier.close()
|
||||||
|
fichier = open("horloge.txt", "w")
|
||||||
|
fichier.close()
|
||||||
|
|
||||||
|
def signal_handler(signal, frame):
|
||||||
|
with open("horloge", "wb") as fichier:
|
||||||
|
saver = pickle.Pickler(fichier)
|
||||||
|
saver.dump(clock)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
class Parser: #Pour parser la ligne de commande
|
class Parser: #Pour parser la ligne de commande
|
||||||
def __init__(self, str, nick, room):
|
def __init__(self, str, nick, room):
|
||||||
|
@ -108,6 +131,16 @@ class Parser: #Pour parser la ligne de commande
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def getNick(room, event):
|
||||||
|
members = room.get_joined_members()
|
||||||
|
nick = ""
|
||||||
|
try:
|
||||||
|
#nick = members[event['sender']]['displayname']
|
||||||
|
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
||||||
|
except:
|
||||||
|
nick = "Voisin du dessus"
|
||||||
|
return(nick)
|
||||||
|
|
||||||
def card(room, event):
|
def card(room, event):
|
||||||
room.send_text(cartes_base[random.randrange(0,len(cartes_base))])
|
room.send_text(cartes_base[random.randrange(0,len(cartes_base))])
|
||||||
|
|
||||||
|
@ -229,13 +262,7 @@ def rolls(result,jet,type,nb,explosif,noadd,wild,f,g,ars,relance,mitige):
|
||||||
def entryPoint(room, event):
|
def entryPoint(room, event):
|
||||||
global parser
|
global parser
|
||||||
text = event['content']['body']
|
text = event['content']['body']
|
||||||
members = room.get_joined_members()
|
nick = getNick(room,event)
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
parser = Parser(text,nick,room)
|
parser = Parser(text,nick,room)
|
||||||
|
|
||||||
print(text)
|
print(text)
|
||||||
|
@ -499,13 +526,7 @@ def reponses(room, phrases):
|
||||||
room.send_text(phrases[i])
|
room.send_text(phrases[i])
|
||||||
|
|
||||||
def jdr(room, event):
|
def jdr(room, event):
|
||||||
members = room.get_joined_members()
|
nick = getNick(room,event)
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
phrases = []
|
phrases = []
|
||||||
phrases.append("Rock & Role baby!")
|
phrases.append("Rock & Role baby!")
|
||||||
phrases.append("De toute maniere " + nick + ", les gens ont perdu la foi dans le rolisme.")
|
phrases.append("De toute maniere " + nick + ", les gens ont perdu la foi dans le rolisme.")
|
||||||
|
@ -513,13 +534,7 @@ def jdr(room, event):
|
||||||
reponses(room, phrases)
|
reponses(room, phrases)
|
||||||
|
|
||||||
def gens(room, event):
|
def gens(room, event):
|
||||||
members = room.get_joined_members()
|
nick = getNick(room,event)
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
phrases = []
|
phrases = []
|
||||||
phrases.append("L'enfer c'est les autres.")
|
phrases.append("L'enfer c'est les autres.")
|
||||||
phrases.append("Bah " + nick + ", les gens c'est pratique pour jouer aux osselets. Bon faut juste trouver ou mettre la chair ensuite.")
|
phrases.append("Bah " + nick + ", les gens c'est pratique pour jouer aux osselets. Bon faut juste trouver ou mettre la chair ensuite.")
|
||||||
|
@ -527,13 +542,7 @@ def gens(room, event):
|
||||||
reponses(room, phrases)
|
reponses(room, phrases)
|
||||||
|
|
||||||
def va(room, event):
|
def va(room, event):
|
||||||
members = room.get_joined_members()
|
nick = getNick(room,event)
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
phrases = []
|
phrases = []
|
||||||
phrases.append("Moi ca va si jamais quelqu'un se pose la question...")
|
phrases.append("Moi ca va si jamais quelqu'un se pose la question...")
|
||||||
phrases.append("Quand l'appetit va, tout va " + nick +"!")
|
phrases.append("Quand l'appetit va, tout va " + nick +"!")
|
||||||
|
@ -541,13 +550,7 @@ def va(room, event):
|
||||||
reponses(room, phrases)
|
reponses(room, phrases)
|
||||||
|
|
||||||
def maman(room, event):
|
def maman(room, event):
|
||||||
members = room.get_joined_members()
|
nick = getNick(room,event)
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
phrases = []
|
phrases = []
|
||||||
phrases.append("On avait dit 'Pas les mamans'!")
|
phrases.append("On avait dit 'Pas les mamans'!")
|
||||||
phrases.append("Oh, c'est pas la mere a boire " + nick + "}!")
|
phrases.append("Oh, c'est pas la mere a boire " + nick + "}!")
|
||||||
|
@ -556,13 +559,7 @@ def maman(room, event):
|
||||||
|
|
||||||
def hi_callback(room, event):
|
def hi_callback(room, event):
|
||||||
# Somebody said hi, let's say Hi back
|
# Somebody said hi, let's say Hi back
|
||||||
members = room.get_joined_members()
|
nick = getNick(room,event)
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
phrases = []
|
phrases = []
|
||||||
phrases.append("Salutations " + nick + "!")
|
phrases.append("Salutations " + nick + "!")
|
||||||
phrases.append("Chalut " + nick + " :)")
|
phrases.append("Chalut " + nick + " :)")
|
||||||
|
@ -579,14 +576,7 @@ def echo_callback(room, event):
|
||||||
|
|
||||||
def liste(room, event):
|
def liste(room, event):
|
||||||
res = []
|
res = []
|
||||||
|
nick = getNick(room,event)
|
||||||
members = room.get_joined_members()
|
|
||||||
nick = ""
|
|
||||||
try:
|
|
||||||
#nick = members[event['sender']]['displayname']
|
|
||||||
nick = [user.get_friendly_name() for user in members if user.user_id == event['sender']][0]
|
|
||||||
except:
|
|
||||||
nick = "Voisin du dessus"
|
|
||||||
|
|
||||||
args = event['content']['body'].split()
|
args = event['content']['body'].split()
|
||||||
args.pop(0)
|
args.pop(0)
|
||||||
|
@ -605,6 +595,104 @@ def liste(room, event):
|
||||||
else:
|
else:
|
||||||
room.send_text("Utilisation : !liste <options/de/la/liste> [nombre d elements]")
|
room.send_text("Utilisation : !liste <options/de/la/liste> [nombre d elements]")
|
||||||
|
|
||||||
|
def cristal(room, event):
|
||||||
|
nick = getNick(room,event)
|
||||||
|
|
||||||
|
args = event['content']['body'].split()
|
||||||
|
args.pop(0)
|
||||||
|
if (len(args) < 2 || args[len(args)-1][-1] != '?'):
|
||||||
|
room.send_text("Utilisation : !cristal <Quel est votre question?>")
|
||||||
|
else:
|
||||||
|
args[len(args)-1] = args[len(args)-1][0:-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", "à"])))
|
||||||
|
conj = args[0]
|
||||||
|
args.pop(0)
|
||||||
|
cle = max(args, key=len)
|
||||||
|
if (conj == "Est-ce" || conj == "est-ce"):
|
||||||
|
# traitement Oui/non
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Evidemment " + nick + ", qu'est ce que tu croyais?")
|
||||||
|
phrases.append("Non " + nick + ", malheurement non.")
|
||||||
|
phrases.append("Oui " + nick +", et quelque chose d'encore pire ensuite pour " + cle + "!")
|
||||||
|
phrases.append("Je ne sais pas si je dois te le dire au risque de te faire de la peine, " + nick + "...")
|
||||||
|
reponses(room, phrases)
|
||||||
|
elif (conj == "Combien" || conj == "combien"):
|
||||||
|
# traitement quantité
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Enormement " + nick + "!")
|
||||||
|
phrases.append("Quasiment aucun " + nick + " :)")
|
||||||
|
phrases.append("Peu comparé à l'immensité, mais au niveau de " + nick +", forcément...")
|
||||||
|
phrases.append("J'en vois des dizaines, des centaines et par un prompt renfort ils furent 500 en arrivant au port!")
|
||||||
|
reponses(room, phrases)
|
||||||
|
elif (conj == "Pourquoi" || conj == "pourquoi"):
|
||||||
|
# traitement raison
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Parce que la vie est injuste " + nick + "!")
|
||||||
|
phrases.append("A cause del'orgueil, " + nick + ", la mère de tous les vices.")
|
||||||
|
phrases.append("Pour la richesse, pour le pouvoir, pour le pouvoir qu'apporte la richesse.")
|
||||||
|
phrases.append("A cause d'une démence aussi soudaine que passagère.")
|
||||||
|
reponses(room, phrases)
|
||||||
|
elif (conj == "Comment" || conj == "comment"):
|
||||||
|
# traitement methode
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Discrètement, sournoisement, vicieusement " + nick + "!")
|
||||||
|
phrases.append("Avec panache! :)")
|
||||||
|
phrases.append("Avec un trombone et un élastique, comme McGuy" + nick +"!")
|
||||||
|
phrases.append("Avec une aide des plus innattendues.")
|
||||||
|
reponses(room, phrases)
|
||||||
|
elif (conj == "Quand" || conj == "quand"):
|
||||||
|
# traitement temps
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Plus vite que tu ne l'imagine, retourne toi " + nick + "!")
|
||||||
|
phrases.append("Dans vraiment de temps, mais n'est pas mort ce qui à jamais dort...")
|
||||||
|
phrases.append("Pile poil la durée que tu imaginais.")
|
||||||
|
phrases.append("Dans plus lontemps que tu ne le pensais, mais tous les intervenants ont une bonne excuse. Leur collègue de droite a merdé.")
|
||||||
|
reponses(room, phrases)
|
||||||
|
elif (conj == "Où" || conj == "où"):
|
||||||
|
# traitement lieu
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Dans la ville voisine")
|
||||||
|
phrases.append("A l'extérieur")
|
||||||
|
phrases.append("Au dernier endroit où on y penserait")
|
||||||
|
phrases.append("Là où les ennuis se concentrent, comme d'habitude")
|
||||||
|
reponses(room, phrases)
|
||||||
|
else:
|
||||||
|
# reponse generique
|
||||||
|
phrases = []
|
||||||
|
phrases.append("Toujours en mouvement le futur est. Toujours sans lunettes flou je vois.")
|
||||||
|
phrases.append("La boule de cristal est momentanément indisponible, veuillez réitérer votre divination ultérieurement.")
|
||||||
|
phrases.append("Une ombre plane sur ton âme, ses crocs approchent.")
|
||||||
|
phrases.append("Tu portes quelque chose de sombre, je refuse de me laisser souiller.")
|
||||||
|
reponses(room, phrases)
|
||||||
|
|
||||||
|
def horloge(room, event):
|
||||||
|
global clock
|
||||||
|
nick = getNick(room,event)
|
||||||
|
|
||||||
|
args = event['content']['body'].split()
|
||||||
|
args.pop(0)
|
||||||
|
if (len(args) == 0):
|
||||||
|
# Liste des horloges du salon
|
||||||
|
for cle,valeur in clock.items():
|
||||||
|
if (cle[0] == room.room_id):
|
||||||
|
room.send_text(cle[1] + " : \u1F540 \n") if (valeur == 0)
|
||||||
|
room.send_text(cle[1] + " : \u1F552 \n") if (valeur == 1)
|
||||||
|
room.send_text(cle[1] + " : \u1F555 \n") if (valeur == 2)
|
||||||
|
room.send_text(cle[1] + " : \u1F558 \n") if (valeur == 3)
|
||||||
|
room.send_text(cle[1] + " : \u1F559 \n") if (valeur == 4)
|
||||||
|
room.send_text(cle[1] + " : \u1F55A \n") if (valeur == 5)
|
||||||
|
room.send_text(cle[1] + " : \u1F55B \n") if (valeur == 6)
|
||||||
|
room.send_text(cle[1] + " : " + valeur + " \n") if (valeur > 6)
|
||||||
|
elif (len(args) >= 2 && args[len(args)-1].isnumeric()):
|
||||||
|
# Place le niveau de l'horloge entre 0 et 6
|
||||||
|
nv = int(args[len(args)-1])
|
||||||
|
clock[room.room_id, args[0:-1]] = nv
|
||||||
|
elif (len(args) >= 2 && args[0] == "del"):
|
||||||
|
# Supprime une horloge
|
||||||
|
args.pop(0)
|
||||||
|
clock.pop(room.room_id, 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.")
|
||||||
|
|
||||||
def invitations(room_id, state):
|
def invitations(room_id, state):
|
||||||
global bot
|
global bot
|
||||||
|
@ -662,6 +750,16 @@ def main():
|
||||||
liste_handler = MCommandHandler("liste", liste)
|
liste_handler = MCommandHandler("liste", liste)
|
||||||
bot.add_handler(liste_handler)
|
bot.add_handler(liste_handler)
|
||||||
|
|
||||||
|
# Boule de cristal
|
||||||
|
cristal_handler = MCommandHandler("cristal", cristal)
|
||||||
|
bot.add_handler(cristal_handler)
|
||||||
|
|
||||||
|
# horloges
|
||||||
|
horloge_read()
|
||||||
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
horloge_handler = MCommandHandler("horloge", horloge)
|
||||||
|
bot.add_handler(horloge_handler)
|
||||||
|
|
||||||
# Invitations
|
# Invitations
|
||||||
bot.client.add_invite_listener(invitations)
|
bot.client.add_invite_listener(invitations)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue