diff options
| author | 2018-07-15 23:56:06 +0100 | |
|---|---|---|
| committer | 2018-07-15 23:56:06 +0100 | |
| commit | 2012a388dac6cbb31945ff04d31a11da19f6e4b0 (patch) | |
| tree | 4d5a8f5f7c8f87aa777ad828c957aeace7126e4e /modules/channel_save.py | |
| parent | fix print_activity still using old EventManager priority location (diff) | |
| signature | ||
move sasl logic to it's own module
Diffstat (limited to 'modules/channel_save.py')
| -rw-r--r-- | modules/channel_save.py | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/modules/channel_save.py b/modules/channel_save.py index 29114cd4..4b6254f2 100644 --- a/modules/channel_save.py +++ b/modules/channel_save.py @@ -2,36 +2,34 @@ class Module(object): def __init__(self, bot): - bot.events.on("self").on("part").hook(self.on_self_part) - bot.events.on("self").on("join").hook(self.on_join) - bot.events.on("self").on("kick").hook(self.on_kick) - bot.events.on("received").on("numeric").on("366").hook( - self.on_identify_trigger) - bot.events.on("received").on("numeric").on("001").hook( - self.on_identify_trigger) + bot.events.on("received.numeric.001").hook( + self.on_connect) + bot.events.on("self.join").hook(self.on_join) + bot.events.on("self.kick").hook(self.on_kick) - def on_self_part(self, event): - pass + def on_connect(self, event): + channels = event["server"].get_setting("autojoin", []) + chan_keys = event["server"].get_setting("channel_keys", {}) + channels_sorted = sorted(channels, + key=lambda x: 0 if x in chan_keys else 1) + + keys_sorted = list(map(lambda x: x[1], + sorted(chan_keys.items(), + key=lambda x: channels_sorted.index(x[0])))) + + for i in range(len(channels_sorted)): + channel = channels_sorted[i] + key = None if len(keys_sorted) <= i else keys_sorted[i] + event["server"].attempted_join[channel] = key + + event["server"].send_join( + ",".join(channels_sorted), ",".join(keys_sorted)) def on_join(self, event): channels = set(event["server"].get_setting("autojoin", [])) channels.add(event["channel"].name) event["server"].set_setting("autojoin", list(channels)) - def on_identify_trigger(self, event): - if event["number"]=="001" and not event["server"].sasl_success: return - if event["line_split"][3].lower() == "#bitbot" or event["number"]=="001": - channels = event["server"].get_setting("autojoin", []) - chan_keys = event["server"].get_setting("channel_keys", {}) - channels_sorted = sorted(channels, - key=lambda x: 0 if x in chan_keys else 1) - - keys_sorted = map(lambda x: x[1], - sorted(chan_keys.items(), - key=lambda x: channels_sorted.index(x[0]))) - event["server"].send_join( - ",".join(channels_sorted), ",".join(keys_sorted)) - def on_kick(self, event): channels = event["server"].get_setting("autojoin", []) if event["channel"].name in channels: |
