AutoMode: Add 'auto*' capabilities to override the configuration values (which apply to capabilities also used elsewhere).

This commit is contained in:
Valentin Lorentz 2013-12-22 15:32:09 +01:00
parent 3c7f9d09c5
commit 19066b62a3
1 changed files with 27 additions and 20 deletions

View File

@ -54,10 +54,19 @@ class AutoMode(callbacks.Plugin):
fallthrough = self.registryValue('fallthrough', channel)
def do(type):
cap = ircdb.makeChannelCapability(channel, type)
cap_auto = ircdb.makeChannelCapability(channel, 'auto'+type)
try:
if ircdb.checkCapability(msg.prefix, cap,
ignoreOwner=not self.registryValue('owner')):
if self.registryValue(type, channel):
apply_mode = ircdb.checkCapability(msg.prefix, cap,
ignoreOwner=not self.registryValue('owner'))
except KeyError:
apply_mode = False
try:
override = ircdb.checkCapability(msg.prefix, cap_auto,
ignoreOwner=not self.registryValue('owner'))
except KeyError:
override = False
if apply_mode or override:
if override or self.registryValue(type, channel):
self.log.info('Scheduling auto-%s of %s in %s.',
type, msg.prefix, channel)
def dismiss():
@ -74,8 +83,6 @@ class AutoMode(callbacks.Plugin):
' is not enabled in %s, refusing to fall '
'through.', msg.prefix, cap, type, channel)
raise Continue
except KeyError:
pass
def schedule_msg(msg, dismiss):
def f():
if not dismiss():