From fc1ed92b4c1636744e7cae4b3e5ae69d515d3535 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 9 Jul 2019 11:43:02 +0100 Subject: add slowvoice.py --- modules/slowvoice.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 modules/slowvoice.py diff --git a/modules/slowvoice.py b/modules/slowvoice.py new file mode 100644 index 00000000..120e881d --- /dev/null +++ b/modules/slowvoice.py @@ -0,0 +1,42 @@ +from src import ModuleManager, utils + +DELAY = 30 # 30 seconds + +@utils.export("channelset", utils.BoolSetting("slowvoice", + "Enable/disable giving +v to new users after a delay")) +@utils.export("channelset", utils.IntSetting("slowvoice-delay", + "Set delay for slowvoice in seconds")) +class Module(ModuleManager.BaseModule): + @utils.hook("timer.slowvoice") + def timer(self, event): + event["channel"].send_mode("+v", [event["user"].nickname]) + + @utils.hook("new.channel") + def new_channel(self, event): + event["channel"]._slowvoice_timers = {} + + @utils.hook("received.join") + def on_join(self, event): + if event["channel"].get_setting("slowvoice", False): + delay = event["channel"].get_setting("slowvoice-delay", DELAY) + timer = self.timers.add("slowvoice", delay, + channel=event["channel"], user=event["user"]) + event["channel"]._slowvoice_timers[event["user"]] = timer + + def _cancel_timer(self, user, channel): + if user in channel._slowvoice_timers: + timer = channel._slowvoice_timers.pop(user) + timer.cancel() + + @utils.hook("received.part") + def on_part(self, event): + self._cancel_timer(event["user"], event["channel"]) + + @utils.hook("received.quit") + def on_quit(self, event): + for channel in evnet["user"].channels: + self._cancel_timer(event["user"], channel) + + @utils.hook("self.part") + def self_part(self, event): + event["channel"]._slowvoice_timers.clear() -- cgit v1.3.1-10-gc9f91