aboutsummaryrefslogtreecommitdiff
path: root/modules/silence.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-12-10 05:27:35 +0000
committerGravatar jesopo2019-12-10 05:27:35 +0000
commit638eee0d685c06d258cb55287204ca97bca7c344 (patch)
tree33442439317ae2846f1efb7674b7a3758c8990a1 /modules/silence.py
parentmove sys.exit() codes to an enum in utils.consts (diff)
signature
move core modules to src/core_modules, make them uneffected by white/black list
Diffstat (limited to 'modules/silence.py')
-rw-r--r--modules/silence.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/modules/silence.py b/modules/silence.py
deleted file mode 100644
index 42990921..00000000
--- a/modules/silence.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#--depends-on commands
-#--depends-on permissions
-
-import time
-from src import EventManager, ModuleManager, utils
-
-SILENCE_TIME = 60*5 # 5 minutes
-
-class Module(ModuleManager.BaseModule):
- def on_load(self):
- self.exports.add("is-silenced", self._is_silenced)
-
- def _is_silenced(self, target):
- silence_until = target.get_setting("silence-until", None)
- if not silence_until == None:
- if time.time()<silence_until:
- return True
- else:
- target.del_setting("silence-until")
- return False
-
- @utils.hook("received.command.silence")
- @utils.kwarg("channel_only", True)
- @utils.kwarg("help", "Prevent me saying anything for a period of time "
- "(default: 5 minutes)")
- @utils.kwarg("usage", "[+time]")
- @utils.kwarg("require_mode", "high")
- @utils.kwarg("require_access", "silence")
- @utils.kwarg("permission", "silence")
- def silence(self, event):
- duration = SILENCE_TIME
- if event["args"] and event["args_split"][0].startswith("+"):
- duration = utils.datetime.from_pretty_time(
- event["args_split"][0][1:])
- if duration == None:
- raise utils.EventError("Invalid duration provided")
-
- silence_until = time.time()+duration
- event["target"].set_setting("silence-until", silence_until)
- event["stdout"].write("Ok, I'll be back")
-
- @utils.hook("received.command.unsilence")
- @utils.kwarg("help", "Unsilence me")
- @utils.kwarg("unsilence", True)
- @utils.kwarg("channel_only", True)
- @utils.kwarg("require_mode", "high")
- @utils.kwarg("require_access", "unsilence")
- @utils.kwarg("permission", "unsilence")
- def unsiltence(self, event):
- silence_until = event["target"].get_setting("silence-until", None)
- if not silence_until == None:
- event["target"].del_setting("silence-until")
- event["stdout"].write("Ok. I've been unsilenced")
- else:
- event["stderr"].write("I am not silenced")
-
- @utils.hook("preprocess.command", priority=EventManager.PRIORITY_HIGH)
- def preprocess_command(self, event):
- if event["is_channel"] and not event["hook"].get_kwarg(
- "unsilence", False):
- silence_until = event["target"].get_setting("silence-until", None)
- if silence_until:
- if self._is_silenced(event["target"]):
- return utils.consts.PERMISSION_HARD_FAIL, None
-
- @utils.hook("unknown.command")
- @utils.kwarg("priority", EventManager.PRIORITY_HIGH)
- def unknown_command(self, event):
- if event["is_channel"] and self._is_silenced(event["target"]):
- event.eat()