aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/silence.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/silence.py b/modules/silence.py
new file mode 100644
index 00000000..3621b501
--- /dev/null
+++ b/modules/silence.py
@@ -0,0 +1,25 @@
+import time
+from src import ModuleManager, utils
+
+SILENCE_TIME = 60*5 # 5 minutes
+
+class Module(ModuleManager.BaseModule):
+ @utils.hook("received.command.silence", channel_only=True)
+ def silence(self, event):
+ """
+ :help: Silence me for 5 minutes
+ :require_mode: high
+ """
+ silence_until = time.time()+SILENCE_TIME
+ event["target"].set_setting("silence-until", silence_until)
+ event["stdout"].write("Ok, I'll be back")
+
+ @utils.hook("preprocess.command")
+ def preprocess_command(self, event):
+ if event["is_channel"]:
+ silence_until = event["target"].get_setting("silence-until", None)
+ if silence_until:
+ if time.time()<silence_until:
+ return utils.consts.PERMISSION_HARD_FAIL
+ else:
+ event["target"].del_setting("silence-until")