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."""