def ignore_event(serv, ev):
"""Retourne ``True`` si il faut ignorer cet évènement."""
- for (blackmask, exceptmask) in config.blacklisted_masks:
+ for (blackmask, exceptlist) 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
+ exceptit = any([bool(irclib.mask_matches(usermask, exceptmask)) for exceptmask in exceptlist])
+ if exceptit: # Il est exempté
+ return False
+ else:
+ if blackit: # Il n'est pas exempté et matche la blacklist
+ return True
def regex_join(liste, avant=u".*(?:^| )", apres=u"(?:$|\.| |,|;).*"):
"""Fabrique une regexp à partir d'une liste d'éléments à matcher."""
#: 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.
+#: Liste de paires de masques ``[black, exceptlist]`` : on blacklistera ce qui match ``black``
+#: et aucun élément de ``exceptlist``
blacklisted_masks = []