diff options
| -rw-r--r-- | Utils.py | 10 | ||||
| -rw-r--r-- | modules/commands.py | 2 | ||||
| -rw-r--r-- | modules/sed.py | 2 |
3 files changed, 12 insertions, 2 deletions
@@ -174,3 +174,13 @@ def bool_or_none(s): return True elif s in IS_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)) diff --git a/modules/commands.py b/modules/commands.py index 3c22a6d1..bf5781d7 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -128,7 +128,7 @@ class Module(object): self.bot.events.on("received").on("command").on(command).call( 1, user=user, server=server, target=target, log=log, args=args, args_split=args_split, stdout=stdout, stderr=stderr, - command=command.lower()) + command=command.lower(), is_channel=is_channel) stdout.send() target.last_stdout = stdout stderr.send() diff --git a/modules/sed.py b/modules/sed.py index 01bbdf4c..460dfd81 100644 --- a/modules/sed.py +++ b/modules/sed.py @@ -18,7 +18,7 @@ class Module(object): validate=Utils.bool_or_none) 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 sed_split = re.split(REGEX_SPLIT, event["message"], 3) if event["message"].startswith("s/") and len(sed_split) > 2: |
