aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2020-07-03 13:14:00 +0100
committerGravatar jesopo2020-07-03 13:14:15 +0100
commit208b0ca464e1a2116c47c91be938521638165977 (patch)
treed16655288fe97a543107ff398ccba1de0e04c57b
parentlog ip, if available, when connection fails (mostly for tls) (diff)
signature
remove channels from autojoin when they are ERR_LINKCHANNEL (470)
-rw-r--r--modules/channel_save.py14
1 files changed, 14 insertions, 0 deletions
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")