From 208b0ca464e1a2116c47c91be938521638165977 Mon Sep 17 00:00:00 2001 From: jesopo Date: Fri, 3 Jul 2020 13:14:00 +0100 Subject: [PATCH] remove channels from autojoin when they are ERR_LINKCHANNEL (470) --- modules/channel_save.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/channel_save.py b/modules/channel_save.py index d5b69638..bbd08dfb 100644 --- a/modules/channel_save.py +++ b/modules/channel_save.py @@ -25,6 +25,9 @@ class Module(ModuleManager.BaseModule): if channel_name in channels: channels.remove(channel_name) server.set_setting("autojoin", channels) + return True + else: + return False @utils.hook("self.part") def on_part(self, event): @@ -33,3 +36,14 @@ class Module(ModuleManager.BaseModule): @utils.hook("self.kick") def on_kick(self, event): self._remove_channel(event["server"], event["channel"].name) + + @utils.hook("raw.received.470") + def on_linkchannel(self, event): + initial = event["line"].args[1] + initial_lower = event["server"].irc_lower(initial) + linked = event["line"].args[2] + + if self._remove_channel(event["server"], initial_lower): + self.log.warn(f"{str(event['server'])} " + f"channel {initial} linked to {linked} " + "- removed from autojoin")