diff options
| author | 2019-07-03 08:14:06 +0100 | |
|---|---|---|
| committer | 2019-07-03 08:14:06 +0100 | |
| commit | 9d23106bbdd4d7642ba3ebdd45be56dd488b86d7 (patch) | |
| tree | eb68cacca1972fc0fd4951b6515211fdb3b3bf62 /modules | |
| parent | return parsed modes from IRCChannel.parse_modes, pass through mode events (diff) | |
| signature | ||
catch +k cmodes (MODE, 324) and store them
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/channel_keys.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/channel_keys.py b/modules/channel_keys.py index 801393b4..ca782c2a 100644 --- a/modules/channel_keys.py +++ b/modules/channel_keys.py @@ -6,6 +6,9 @@ class Module(ModuleManager.BaseModule): def _get_key(self, server, channel_name): channel_id = server.channels.get_id(channel_name) return self.bot.database.channel_settings.get(channel_id, "key", None) + def _set_key(self, channel, key): + print("setting key", channel.name, key) + channel.set_setting("key", key) @utils.hook("preprocess.send.join") def preprocess_send_join(self, event): @@ -31,3 +34,11 @@ class Module(ModuleManager.BaseModule): keys_out.append(key) event["line"].args[0] = ",".join(channels_out) event["line"].args[1:] = keys_out + + @utils.hook("received.324") + @utils.hook("received.mode.channel") + def on_modes(self, event): + print(event["modes"]) + for mode, arg in event["modes"]: + if mode == "+k": + self._set_key(event["channel"], arg) |
