|
|
@ -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): |
|
|
|