Commit c97afcd9 authored by Mindiell's avatar Mindiell

Issue #14: implementation of the 'status' command in order to retrieve status of a url.

parent 1c407ea5
...@@ -9,7 +9,7 @@ messages = { ...@@ -9,7 +9,7 @@ messages = {
"""Bonjour, je suis le bot de la Quadrature du Net, vous pouvez me demander de l'aide si besoin. (wantzel help)""", """Bonjour, je suis le bot de la Quadrature du Net, vous pouvez me demander de l'aide si besoin. (wantzel help)""",
"help": "help":
"""Mes commandes sont : ~help ~rp(cpa) ~kill ~stats et ~admin. """Mes commandes sont : ~help ~rp(cpa) ~status ~kill ~stats et ~admin.
Pour plus d'informations, voir ici: https://wiki.laquadrature.net/Wantzel Pour plus d'informations, voir ici: https://wiki.laquadrature.net/Wantzel
Pour obtenir de l'aide sur une commande en particulier, il suffit de taper ~help <commande>""", Pour obtenir de l'aide sur une commande en particulier, il suffit de taper ~help <commande>""",
...@@ -21,6 +21,10 @@ messages = { ...@@ -21,6 +21,10 @@ messages = {
"""Cette commande sert à ajouter un article à la Revue de Presse (https://wiki.laquadrature.net/Revue_de_presse) """Cette commande sert à ajouter un article à la Revue de Presse (https://wiki.laquadrature.net/Revue_de_presse)
L'utilisation se fait sous la forme: ~rp <url de l'article à ajouter>""", L'utilisation se fait sous la forme: ~rp <url de l'article à ajouter>""",
"help_status":
"""Cette commande sert à retrouver les informations concernant un article ajouté à la Revue de Presse (https://wiki.laquadrature.net/Revue_de_presse)
L'utilisation se fait sous la forme: ~status <url de l'article>""",
"help_stats": "help_stats":
"""Cette commande permet de fournir quelques statistiques sur la Revue de Presse (https://wiki.laquadrature.net/Revue_de_presse) """Cette commande permet de fournir quelques statistiques sur la Revue de Presse (https://wiki.laquadrature.net/Revue_de_presse)
Les statistiques sont calculées sur des notes supérieurs ou égales à 0, 3, et 4. Et sur les 1, 3, 7, et 15 derniers jours.""", Les statistiques sont calculées sur des notes supérieurs ou égales à 0, 3, et 4. Et sur les 1, 3, 7, et 15 derniers jours.""",
...@@ -52,6 +56,9 @@ messages = { ...@@ -52,6 +56,9 @@ messages = {
"rp_taken_article": "rp_taken_article":
"""Merci %s! Un point a été ajouté à cet article : il va être repris dans la revue de presse. D'ailleurs, que dirais-tu d'aider à choisir les extraits à publier sur #lqdn-rp ? <3""", """Merci %s! Un point a été ajouté à cet article : il va être repris dans la revue de presse. D'ailleurs, que dirais-tu d'aider à choisir les extraits à publier sur #lqdn-rp ? <3""",
"status_unknown_article":
"""Désolé %s, l'url donnée n'existe pas dans la base de données.""",
"kill_none": "kill_none":
"""%s n'existe pas dans la base de données""", """%s n'existe pas dans la base de données""",
......
...@@ -204,8 +204,10 @@ class Wantzel(object): ...@@ -204,8 +204,10 @@ class Wantzel(object):
Returns a message about how to use the bot. Returns a message about how to use the bot.
If a command is passed after help, the message explains how to use If a command is passed after help, the message explains how to use
the command. the command.
- rp(acp) - rp(acp) <url>
Add an article in the database Add an article in the database
- status <url>
Retrieve some informations about an article in the database
- stats - stats
Show some statistics about the RP Show some statistics about the RP
- kill (*) - kill (*)
...@@ -231,7 +233,7 @@ class Wantzel(object): ...@@ -231,7 +233,7 @@ class Wantzel(object):
if "wantzel" in msg and ("help" in msg or "aide" in msg): if "wantzel" in msg and ("help" in msg or "aide" in msg):
self.help(channel, msg) self.help(channel, msg)
# Find known command # Find known command
command = re.search("[!~](rp[acp]*|kill|help|stats|admin)", msg) command = re.search("[!~](rp[acp]*|status|kill|help|stats|admin)", msg)
Utils.debug("Command: %s" % command) Utils.debug("Command: %s" % command)
if command: if command:
Utils.debug("group(0): %s" % command.group(0)) Utils.debug("group(0): %s" % command.group(0))
...@@ -242,6 +244,9 @@ class Wantzel(object): ...@@ -242,6 +244,9 @@ class Wantzel(object):
if command.startswith("rp"): if command.startswith("rp"):
Utils.debug("Calling self.rp") Utils.debug("Calling self.rp")
self.rp(command, user, channel, msg) self.rp(command, user, channel, msg)
if command.startswith("status"):
Utils.debug("Calling self.status")
self.status(command, user, channel, msg)
elif command == "help": elif command == "help":
Utils.debug("Calling self.help") Utils.debug("Calling self.help")
self.help(channel, msg) self.help(channel, msg)
...@@ -266,7 +271,7 @@ class Wantzel(object): ...@@ -266,7 +271,7 @@ class Wantzel(object):
""" """
Utils.debug("help command") Utils.debug("help command")
# Searching for a command after help keyword # Searching for a command after help keyword
command = re.search("~help (help|rp|stats|kill|admin)", msg) command = re.search("~help (help|rp|status|stats|kill|admin)", msg)
if command: if command:
command = command.group(1) command = command.group(1)
self.send_message(channel, messages["help_"+command]) self.send_message(channel, messages["help_"+command])
...@@ -325,6 +330,38 @@ class Wantzel(object): ...@@ -325,6 +330,38 @@ class Wantzel(object):
# Update number of articles to do # Update number of articles to do
self.count_articles() self.count_articles()
def status(self, command, user, channel, msg):
"""
Retrieving status of the article in rp database.
"""
Utils.debug("rp command : %s" % command)
Utils.debug("rp user : %s" % user)
Utils.debug("rp channel : %s" % channel)
Utils.debug("rp msg : %s" % msg)
url = get_url(msg)
Utils.debug("url: %s" % url)
if not url:
return
# Looking for such an article in database
cursor = get_cursor()
cursor.execute("""
SELECT cite, published, nid, screenshot, fetched, seemscite, note
FROM presse
WHERE url = %s""", (url, ))
rows = cursor.fetchall()
if not rows:
self.send_message(channel, messages["status_unknown_article"] % user)
else:
message = "%s: note %s / " % (user, rows[0][6])
if rows[0][0] != "0":
message += "cite lqdn / "
if rows[0][1] == 1:
published = "publié (noeud %s) / " % rows[0][2]
else:
published = "non publié / "
self.send_message(channel, message[:-2])
def kill(self, user, channel, msg): def kill(self, user, channel, msg):
""" """
Kill an article by setting its score to -100. Kill an article by setting its score to -100.
......
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