aboutsummaryrefslogtreecommitdiff
path: root/modules/silence.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-05-13 20:50:31 +0100
committerGravatar jesopo2019-05-13 20:50:31 +0100
commit7922f6e9a5e1a71bb6884cd1c8ef3ef2e38824ab (patch)
tree4b2719f07f5b0c06ad7494d78ea041ed3320fd49 /modules/silence.py
parentAdd !botlist and !rollcall (diff)
signature
Added !silence, to silence the bot in a channel for 5 mins
Diffstat (limited to 'modules/silence.py')
-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")