callbacks: Allow Plugin.noIgnore to be a function instead of a boolean.

This commit is contained in:
Valentin Lorentz 2015-05-15 12:38:42 +02:00
parent a39a6d247d
commit 86d9f49aa5

View File

@ -1341,7 +1341,11 @@ class PluginMixin(BasePlugin, irclib.IrcCallback):
def __call__(self, irc, msg): def __call__(self, irc, msg):
irc = SimpleProxy(irc, msg) irc = SimpleProxy(irc, msg)
if msg.command == 'PRIVMSG': if msg.command == 'PRIVMSG':
if self.noIgnore or \ if hasattr(self.noIgnore, '__call__'):
noIgnore = self.noIgnore(irc, msg)
else:
noIgnore = self.noIgnore
if noIgnore or \
not ircdb.checkIgnored(msg.prefix, msg.args[0]) or \ not ircdb.checkIgnored(msg.prefix, msg.args[0]) or \
not ircutils.isUserHostmask(msg.prefix): # Some services impl. not ircutils.isUserHostmask(msg.prefix): # Some services impl.
self.__parent.__call__(irc, msg) self.__parent.__call__(irc, msg)