aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-05-06 17:08:56 +0100
committerGravatar jesopo2019-05-06 17:08:56 +0100
commit0114d35d4c7a3a6640b5ccd1190347998b9dc7c5 (patch)
tree328cf0f8e8dc291239197ae690f74845b3ba88e0
parentSupport only saving birthday day and month (diff)
signature
Add a mechanism to ignore specific commands for a whole network
-rw-r--r--modules/commands/__init__.py17
-rw-r--r--modules/karma.py2
-rw-r--r--modules/sed.py2
-rw-r--r--modules/title.py2
4 files changed, 19 insertions, 4 deletions
diff --git a/modules/commands/__init__.py b/modules/commands/__init__.py
index 4315e940..965518d8 100644
--- a/modules/commands/__init__.py
+++ b/modules/commands/__init__.py
@@ -79,11 +79,13 @@ class Module(ModuleManager.BaseModule):
return target.get_setting(COMMAND_METHOD,
server.get_setting(COMMAND_METHOD, "PRIVMSG")).upper()
- def _is_ignored(self, user, command):
+ def _is_ignored(self, server, user, command):
if user.get_setting("ignore", False):
return True
elif user.get_setting("ignore-%s" % command, False):
return True
+ elif server.get_setting("ignore-%s" % command, False):
+ return True
return False
def message(self, event, command, args_index=1):
@@ -364,6 +366,19 @@ class Module(ModuleManager.BaseModule):
event["stdout"].write("Removed ignore for '%s'%s" %
(user.nickname, for_str))
+ @utils.hook("received.command.serverignore", in_args=1)
+ def server_ignore(self, event):
+ command = event["args_split"][0].lower()
+ setting = "ignore-%s" % command
+
+ if event["server"].get_setting(setting):
+ event["stderr"].write("I'm already ignoring '%s' for %s" %
+ (command, str(event["server"])))
+ else:
+ server.set_setting(setting, True)
+ event["stdout"].write("Now ignoring '%s' for %s" %
+ (command, str(event["server"])))
+
@utils.hook("send.stdout")
def send_stdout(self, event):
stdout = outs.StdOut(event["server"], event["module_name"],
diff --git a/modules/karma.py b/modules/karma.py
index 1028ed2d..145b342d 100644
--- a/modules/karma.py
+++ b/modules/karma.py
@@ -31,7 +31,7 @@ class Module(ModuleManager.BaseModule):
if match and not event["action"]:
is_ignored_f = short_url = self.exports.get_one("is-ignored",
lambda _1, _2: False)
- if is_ignored_f(event["user"], "karma"):
+ if is_ignored_f(event["server"], event["user"], "karma"):
return
verbose = event["channel"].get_setting("karma-verbose", False)
diff --git a/modules/sed.py b/modules/sed.py
index e5933fd9..f6849810 100644
--- a/modules/sed.py
+++ b/modules/sed.py
@@ -24,7 +24,7 @@ class Module(ModuleManager.BaseModule):
return
is_ignored_f = short_url = self.exports.get_one("is-ignored",
lambda _1, _2: False)
- if is_ignored_f(event["user"], "sed"):
+ if is_ignored_f(event["server"], event["user"], "sed"):
return
regex_flags = 0
diff --git a/modules/title.py b/modules/title.py
index cfb2e6c0..c84b8637 100644
--- a/modules/title.py
+++ b/modules/title.py
@@ -51,7 +51,7 @@ class Module(ModuleManager.BaseModule):
if match and event["channel"].get_setting("auto-title", False):
is_ignored_f = short_url = self.exports.get_one("is-ignored",
lambda _1, _2: False)
- if is_ignored_f(event["user"], "title"):
+ if is_ignored_f(event["server"], event["user"], "title"):
return
url = match.group(0)