blob: d2a1f54831657845481d7785921fcd2be1ea50ab (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
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 silence_until and time.time()<silence_until:
return True
return False
@utils.hook("received.command.silence", channel_only=True)
def silence(self, event):
"""
:help: Silence me for 5 minutes
:require_mode: high
:permission: silence
"""
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", priority=EventManager.PRIORITY_HIGH)
def preprocess_command(self, event):
if event["is_channel"]:
silence_until = event["target"].get_setting("silence-until", None)
if silence_until:
if self._is_silenced(event["target"]):
return utils.consts.PERMISSION_HARD_FAIL
else:
event["target"].del_setting("silence-until")
|