aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Utils.py10
-rw-r--r--modules/commands.py2
-rw-r--r--modules/sed.py2
3 files changed, 12 insertions, 2 deletions
diff --git a/Utils.py b/Utils.py
index 9cbc3a3f..6fef833b 100644
--- a/Utils.py
+++ b/Utils.py
@@ -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: