Commit 9deaf566 authored by Otthorn's avatar Otthorn 🤔

update user_id fonctions

parent 58306250
......@@ -14,3 +14,7 @@ mammouth;;Non il y a rien écrit, c'est une tautologie
mammouth;;hahaha
Fistine;;Je suis riche parce que je sais gérer mon argent
Kang;;Google c'est bien
Fistine;;Je suis un peu comme batman
PA;;erdnaxe oui bon voilà
otthorn;;erdnaxe est un gens bien
radagast;;(dans la Med) Mais arretez d'être bizzare !
......@@ -81,3 +81,6 @@ class MatrixBotAPI:
def upload_to_server(self, data, mime):
mxc = self.client.upload(data, mime)
return mxc
def get_user_by_id(self, user_id):
return self.client.get_user(user_id)
import re
from matrix_client.checks import check_user_id
def format_arguments(args):
"""return a link and the trailing arguments from a string containing
a formated body (html)"""
link_re = re.search('<a.*</a>', args)
if link_re != None:
link = link_re.group(0)
else:
link = ""
trainling_args = " ".join(args.split()[3:])
return link, trailing_args
def get_id_from_link(link):
"""return the user_id of a user from from an html link"""
for char in link:
result = re.search('@.*(.org|.fr|.re|.net|.io)', link)
return result.group(0)
def get_link_from_id(user_id, name):
"""recreated an html link from the user_id and the name of a user"""
if check_user_id(user_id) == None:
link = '<a href="https://"matrix.to/#/{}">{}</a>'.format(user_id, name)
return link
......@@ -7,7 +7,7 @@ from matrix_bot_api.mcommand_handler import MCommandHandler
from giphy_api import gif_search
from weather_api import query_weather
from parse_env import parse_env
from matrix_user_id import format_arguments, get_id_from_link, get_link_from_id
import citations
# Parse the global variables from the env
......@@ -73,19 +73,28 @@ def help_callback(room, event):
elif args[1] in ("d", "dice", "die", "dés", "dé", "dN", "!dN"):
room.send_html("<em>!d<strong>N</strong></em> est une commande pour lancer un dé à <strong>N</strong> face(s). <strong>N</strong> entre 1 et 1000.<br /><em>Exemple</em> : <code>!d20</code> pour lancer un dé à 20 faces.")
room.send_html("<em>!d<strong>N</strong></em> est une commande pour \
lancer un dé à <strong>N</strong> face(s). <strong>N</strong> entre 1 et 1000.\
<br /><em>Exemple</em> : <code>!d20</code> pour lancer un dé à 20 faces.")
return
elif args[1] in ("gif", "!gif"):
room.send_html("<em>!gif</em> <strong>X</strong> permet d'afficher un gif correspondant à la recherche <strong>X</strong>.<br /><em>Exemple</em> : <code>!gif suhsi</code> renvera un gif avec des suhsi !")
room.send_html("<em>!gif</em> <strong>X</strong> permet d'afficher un \
gif correspondant à la recherche <strong>X</strong>.<br /><em>Exemple</em> : \
<code>!gif suhsi</code> renvera un gif avec des suhsi !")
return
elif args[1] in ("echo", "!echo"):
room.send_html("<em>!echo</em> <strong>X</strong> renvoie un message contenant <strong>X</strong>.<br /><em>Exemple</em> : <code>!echo Med</code> renverra le message <code>Med</code>.")
room.send_html("<em>!echo</em> <strong>X</strong> renvoie un message \
contenant <strong>X</strong>.<br /><em>Exemple</em> : <code>!echo Med</code> \
renverra le message <code>Med</code>.")
return
elif args[1] in ("meteo", "weather", "!weather"):
room.send_html("<em>!weather</em> <strong>L</strong> renvoie la météo pour l'emplacement <strong>L</strong>. On peut spécifier soit <code>ville</code> soit <code>ville, pays</code>.<br /><em>Exemple</em> : <code>!weather Cachan</code> ou bien <code>!weather newcastle, gb</code>.")
room.send_html("<em>!weather</em> <strong>L</strong> renvoie la\
météo pour l'emplacement <strong>L</strong>. On peut spécifier soit \
<code>ville</code> soit <code>ville, pays</code>.<br /><em>Exemple</em>\
: <code>!weather Cachan</code> ou bien <code>!weather newcastle, gb</code>.")
return
else:
......@@ -114,7 +123,6 @@ def weather_callback(room, event):
room.send_text(summary)
def quote_callback(room, event):
args = event['content']['body'].split()
author = args[1]
......@@ -132,22 +140,37 @@ def quote_callback(room, event):
room.send_text("Ajouter à la liste des citations de {} - (total : {})".format(author, len(quote_dico[author])))
def list_quote_callback(room, event):
args = event['content']['body'].split()
author = " ".join(args[1:])
#args = event['content']['body'].split()
#author = " ".join(args[1:])
if 'formatted_body' in event['content'].keys():
args = event['content']['formatted_body']
else:
args = event['content']['body']
if author not in quote_dico.keys():
user_id = get_id_from_link(args)
author_obj = bot.get_user_by_id(user_id)
author = author_obj.get_friendly_name()
if len(args) == 1:
print("LISTE QUOTE agrs = 1")
message = "Liste des personnes ayant des citations :\n<ul>\n"
for p in quote_dico.keys():
message += "<li>{} ({})</li>\n".format(p, len(quote_dico[p]))
message += "</ul>\n"
room.send_html(message)
return
elif author not in quote_dico.keys():
room.send_text("Désolé mais {} est introuvable dans la base de donnée".format(author))
return
else:
for quote in quote_dico[author]:
room.send_html("<blockquote>\n{} — {}\n</blockquote>\n".format(quote, author))
room.send_html("<blockquote>\n{} — {}\n</blockquote>\n".format(quote, get_link_from_id(user_id)))
def main():
# Create an instance of the MatrixBotAPI
#bot = MatrixBotAPI(USERNAME, PASSWORD, SERVER)
# Add a regex handler waiting for the word Hi
hi_handler = MRegexHandler("Bonjour|Bonsoir|bonjour|bonsoir|Salut|salut", hi_callback)
bot.add_handler(hi_handler)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment