]> gitweb.pimeys.fr Git - bots/basile.git/commitdiff
Fonction de blacklist
authorVincent Le Gallic <legallic@crans.org>
Wed, 19 Jun 2013 17:20:15 +0000 (19:20 +0200)
committerVincent Le Gallic <legallic@crans.org>
Wed, 19 Jun 2013 17:20:23 +0000 (19:20 +0200)
basile.py
config.py

index ecbef4ec39389afed5def41297096a77c7531098..1203465537e776fba00bb9e7b096f795256d34b0 100755 (executable)
--- a/basile.py
+++ b/basile.py
@@ -54,6 +54,17 @@ def log(serveur, channel, auteur=None, message=None):
     if config.debug_stdout:
         print chain
 
+def ignore_event(serv, ev):
+    """Retourne ``True`` si il faut ignorer cet évènement."""
+    for (blackmask, exceptmask) in config.blacklisted_masks:
+        usermask = ev.source()
+        if exceptmask is None:
+            exceptit = False
+        else:
+            exceptit = bool(irclib.mask_matches(usermask, exceptmask))
+        blackit = bool(irclib.mask_matches(usermask, blackmask))
+        return blackit and not exceptit
+
 def regex_join(liste, avant=u".*(?:^| )", apres=u"(?:$|\.| |,|;).*"):
     """Fabrique une regexp à partir d'une liste d'éléments à matcher."""
     return avant + u"(" + u"|".join(liste) + u")" + apres
index 0c3e418341258c1d3016902c7c89a0f7b59aaffa..e01a1d959cc02e6b720a3286a6c940caa0400810 100644 (file)
--- a/config.py
+++ b/config.py
@@ -280,3 +280,7 @@ helpmsg_default = u"Liste des commandes disponibles :\nHELP IDENTIFY DROP SOLDE"
 helpmsg_ops = u" JOIN LEAVE QUIET NOQUIET LOST RECONNECT RELOAD"
 #: Message d'aide par défaut à ajouter pour les OVEROPs
 helpmsg_overops = u" SAY DO STAY NOSTAY OPS OVEROPS KICK DIE CRASH"
+
+#: Liste de paires de masques ``[black, except]`` : on blacklistera ce qui match ``black``
+#: et pas ``except``. ``except`` peut être None.
+blacklisted_masks = []