diff options
| author | 2018-09-07 16:13:39 +0100 | |
|---|---|---|
| committer | 2018-09-07 16:13:39 +0100 | |
| commit | f317b2d7242d2e03dc8a6b3a980a0cfac4af09e4 (patch) | |
| tree | ecc07cd2dbbd500fbdb73798aee51e2317beb438 /IRCLineHandler.py | |
| parent | Only "finish" a sasl handshake when we get a 900 (diff) | |
| signature | ||
Support IRCv3's cap-notify
Diffstat (limited to 'IRCLineHandler.py')
| -rw-r--r-- | IRCLineHandler.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/IRCLineHandler.py b/IRCLineHandler.py index faa97471..e3a53303 100644 --- a/IRCLineHandler.py +++ b/IRCLineHandler.py @@ -9,7 +9,7 @@ RE_MODES = re.compile(r"[-+]\w+") CAPABILITIES = {"multi-prefix", "chghost", "invite-notify", "account-tag", "account-notify", "extended-join", "away-notify", "userhost-in-names", - "draft/message-tags-0.2", "server-time"} + "draft/message-tags-0.2", "server-time", "cap-notify"} class LineHandler(object): def __init__(self, bot, events): @@ -314,6 +314,15 @@ class LineHandler(object): event["server"].send_capability_queue() else: event["server"].send_capability_end() + elif subcommand == "new": + event["server"].capabilities.update(set(capabilities.keys())) + self.events.on("received.cap.new").call(server=event["server"], + capabilities=capabilities) + elif subcommand == "del": + event["server"].capabilities.difference_update(set( + capabilities.keys())) + self.events.on("received.cap.del").call(server=event["server"], + capabilities=capabilities) elif subcommand == "ack": event["server"].capabilities.update(capabilities) if not is_multiline: |
