added a function to Utils to get the "closest" setting, with channel/user settings being more important than server-wide settings.
This commit is contained in:
parent
9c9d7aa439
commit
5338859e31
3 changed files with 12 additions and 2 deletions
10
Utils.py
10
Utils.py
|
@ -174,3 +174,13 @@ def bool_or_none(s):
|
||||||
return True
|
return True
|
||||||
elif s in IS_FALSE:
|
elif s in IS_FALSE:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_closest_setting(event, setting, default=None):
|
||||||
|
server = event["server"]
|
||||||
|
if "channel" in event:
|
||||||
|
closest = event["channel"]
|
||||||
|
elif "target" in event and "is_channel" in event and event["is_channel"]:
|
||||||
|
closest = event["target"]
|
||||||
|
else:
|
||||||
|
closest = event["user"]
|
||||||
|
return closest.get_setting(setting, server.get_setting(setting, default))
|
||||||
|
|
|
@ -128,7 +128,7 @@ class Module(object):
|
||||||
self.bot.events.on("received").on("command").on(command).call(
|
self.bot.events.on("received").on("command").on(command).call(
|
||||||
1, user=user, server=server, target=target, log=log,
|
1, user=user, server=server, target=target, log=log,
|
||||||
args=args, args_split=args_split, stdout=stdout, stderr=stderr,
|
args=args, args_split=args_split, stdout=stdout, stderr=stderr,
|
||||||
command=command.lower())
|
command=command.lower(), is_channel=is_channel)
|
||||||
stdout.send()
|
stdout.send()
|
||||||
target.last_stdout = stdout
|
target.last_stdout = stdout
|
||||||
stderr.send()
|
stderr.send()
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Module(object):
|
||||||
validate=Utils.bool_or_none)
|
validate=Utils.bool_or_none)
|
||||||
|
|
||||||
def channel_message(self, event):
|
def channel_message(self, event):
|
||||||
if event["action"] or not event["channel"].get_setting("sed", True):
|
if event["action"] or not Utils.get_closest_setting(event, "sed", True):
|
||||||
return
|
return
|
||||||
sed_split = re.split(REGEX_SPLIT, event["message"], 3)
|
sed_split = re.split(REGEX_SPLIT, event["message"], 3)
|
||||||
if event["message"].startswith("s/") and len(sed_split) > 2:
|
if event["message"].startswith("s/") and len(sed_split) > 2:
|
||||||
|
|
Loading…
Reference in a new issue