diff options
| author | 2020-02-08 23:53:46 +0000 | |
|---|---|---|
| committer | 2020-02-08 23:53:46 +0000 | |
| commit | 8153047f7ced483c74e203f159631b7a2bc9ffd2 (patch) | |
| tree | 165129854474d6c49024982d1e1d54121e902eb3 | |
| parent | rewrite message_filter.py to handle both message rejection and pattern replace (diff) | |
| signature | ||
support server-wide message filters too
| -rw-r--r-- | modules/message_filter.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/message_filter.py b/modules/message_filter.py index be7d0b79..f04f17a0 100644 --- a/modules/message_filter.py +++ b/modules/message_filter.py @@ -63,17 +63,22 @@ class Module(ModuleManager.BaseModule): if not message == message_plain: event["line"].args[1] = message - @utils.hook("received.command.cfilter", min_args=1) + @utils.hook("received.command.cfilter", channel_only=True) + @utils.hook("received.command.filter") @utils.kwarg("help", "Add a message filter for the current channel") @utils.kwarg("permissions", "cfilter") @utils.spec("!'list ?<index>int") @utils.spec("!'add ?<m/pattern/>string|<s/pattern/replace/>string") @utils.spec("!'remove !<index>int") - def cfilter(self, event): + def filter(self, event): # mark output as "assured" so it can bypass filtering event["stdout"].assure() event["stderr"].assure() - target = event["target"] + + if event["command"] == "cfilter": + target = event["target"] + else: + target = event["server"] filters = target.get_setting("message-filters", []) if event["spec"][0] == "list": |
