diff options
| author | 2019-07-11 22:18:10 +0100 | |
|---|---|---|
| committer | 2019-07-11 22:18:10 +0100 | |
| commit | c083d4845a75d0694f9c92a7e853a7d5aec93550 (patch) | |
| tree | 183bfa7339da04b9cdec69c5b906944ac834733c /modules/kick-rejoin.py | |
| parent | add configurable kick-rejoin delay (default 5s) (diff) | |
| signature | ||
support enabling kick-rejoin per channel
Diffstat (limited to 'modules/kick-rejoin.py')
| -rw-r--r-- | modules/kick-rejoin.py | 24 |
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) |
