aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-07-11 22:18:10 +0100
committerGravatar jesopo2019-07-11 22:18:10 +0100
commitc083d4845a75d0694f9c92a7e853a7d5aec93550 (patch)
tree183bfa7339da04b9cdec69c5b906944ac834733c /modules
parentadd configurable kick-rejoin delay (default 5s) (diff)
signature
support enabling kick-rejoin per channel
Diffstat (limited to 'modules')
-rw-r--r--modules/kick-rejoin.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/modules/kick-rejoin.py b/modules/kick-rejoin.py
index 4e9d48af..5e9555e3 100644
--- a/modules/kick-rejoin.py
+++ b/modules/kick-rejoin.py
@@ -4,15 +4,27 @@ from src import ModuleManager, utils
DELAY = 5
-@utils.export("serverset", utils.BoolSetting("kick-rejoin",
- "Whether or not I should rejoin channels I get kicked from"))
-@utils.export("serverset", utils.IntSetting("kick-rejoin-delay",
- "Amount of seconds to wait before rejoining a channel"))
+rejoin_setting = utils.BoolSetting("kick-rejoin",
+ "Whether or not I should rejoin channels I get kicked from")
+delay_setting = utils.IntSetting("kick-rejoin-delay",
+ "Amount of seconds to wait before rejoining a channel")
+
+@utils.export("serverset", rejoin_setting)
+@utils.export("serverset", delay_setting)
+@utils.export("channelset", rejoin_setting)
+@utils.export("channelset", delay_setting)
class Module(ModuleManager.BaseModule):
+ def _should_rejoin(self, server, channel):
+ return channel.get_setting("kick-rejoin",
+ server.get_setting("kick-rejoin", False))
+ def _get_delay(self, server, channel):
+ return channel.get_setting("kick-rejoin-delay",
+ server.get_setting("kick-rejoin-delay", DELAY))
+
@utils.hook("self.kick")
def on_kick(self, event):
- if event["server"].get_setting("kick-rejoin", False):
- delay = event["server"].get_setting("kick-rejoin-delay", DELAY)
+ if self._should_rejoin(event["server"], event["channel"]):
+ delay = self._get_delay(event["server"], event["channel"])
self.timers.add("kick-rejoin", delay, server=event["server"],
channel_name=event["channel"].name)