Browse Source

showquote

master
Nemesis 6 years ago
parent
commit
db67536611
  1. 123
      asmodee.py

123
asmodee.py

@ -248,9 +248,12 @@ class Parser: #Pour parser la ligne de commande
return True
return False
def msg(room,msg):
def msg(room,msg,content=False):
try:
room.send_text(msg)
if content:
bot.client.api.send_message_event(room.room_id, 'm.room.message', msg, None, None)
else:
room.send_text(msg)
except:
room.send_text("Impossible d'envoyer le message")
print(msg)
@ -802,10 +805,10 @@ def rollTypePoint(): # Parser le nombre de faces du dé
parser.arg["error"] = True
def reponses(room, phrases): # 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))
msg(room,phrases[i])
msg(room,phrases[i],content)
def jdr(room, event):
global modules
try:
@ -1256,43 +1259,85 @@ def quote(room,event): # Gestion des citations
else:
msg(room,"Je n'ai pas de citations pour ce salon")
def addquote(room,event):
global citations
content = event['content']
if len(json.dumps(content)) > 420:
# Enlève la commande de la citation
try:
content['body'] = content['body'].replace("\naddquote", " ")
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", "")
except:
print("\n\nerreur formatted_body " + json.dumps(content))
#print(json.dumps(content))
# Récupération de l'auteur
auteur = "Un nain connu"
match = re.search(r"<(@\w+:\w+.\w+)>", content['body'])
if match:
auteur = match.group(1)
# Id
tps = datetime.now().microsecond
# récupérations des citations du salon
def addquote(room,event): # enregistrer les citations mode reponses matrix
global modules
try:
rmod = modules[room.room_id, 'quote']
except:
modules[room.room_id, 'quote'] = False
if (modules[room.room_id, 'quote']):
global citations
content = event['content']
if len(json.dumps(content)) > 420:
# Enlève la commande de la citation
try:
content['body'] = content['body'].replace("\naddquote", " ")
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", "")
except:
print("\n\nerreur formatted_body " + json.dumps(content))
# Récupération de l'auteur
auteur = "Un nain connu"
match = re.search(r"<(@\w+:\w+.\w+)>", content['body'])
if match:
auteur = match.group(1)
# Id
tps = datetime.now().microsecond
# récupérations des citations du salon
famous = {}
try:
famous = citations[room.room_id]
except:
famous = {}
# enregistrement de la citation
famous[auteur,tps] = content
quotes[room.room_id] = famous
msg(room,"Ajout de la citation de " + auteur + ":")
bot.client.api.send_message_event(room.room_id, 'm.room.message', content, None, None)
def showquote(room, event): # afficher les citations mode reponse matrix
global modules
try:
rmod = modules[room.room_id, 'quote']
except:
modules[room.room_id, 'quote'] = False
if (modules[room.room_id, 'quote']):
args = event['content']['body'].split()
args.pop(0)
famous = {}
try:
famous = citations[room.room_id]
famous = quotes[room.room_id]
except:
famous = {}
# enregistrement de la citation
famous[auteur,tps] = content
quotes[room.room_id] = famous
msg(room,"Ajout de la citation de " + auteur + ":")
bot.client.api.send_message_event(room.room_id, 'm.room.message', content, None, None)
if (len(args) == 1):
# cite une quote d'une personne precise
nick = args[0]
phrases = []
for cle,valeur in famous.items():
if (cle[0] == nick):
phrases.append(valeur)
if (len(phrases) > 0 ):
reponses(room,phrases,True)
else:
msg(room,"Je n'ai pas de citations pour " + nick)
else:
# cite une quote aleatoire
phrases = []
for cle,valeur in famous.items():
phrases.append(valeur)
if (len(phrases) > 0 ):
reponses(room,phrases,True)
else:
msg(room,"Je n'ai pas de citations pour ce salon")
def biere(room,event): # Gestion des boissons
@ -1709,6 +1754,8 @@ def main():
citations_read()
addquote_handler = MEndHandler("addquote", addquote)
bot.add_handler(addquote_handler)
showquote_handler = MCommandHandler("showquote", showquote)
bot.add_handler(showquote_handler)
# bieres
if ('biere' in liste_mod):

Loading…
Cancel
Save