aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-07 16:13:39 +0100
committerGravatar jesopo2018-09-07 16:13:39 +0100
commitf317b2d7242d2e03dc8a6b3a980a0cfac4af09e4 (patch)
treeecc07cd2dbbd500fbdb73798aee51e2317beb438
parentOnly "finish" a sasl handshake when we get a 900 (diff)
signature
Support IRCv3's cap-notify
-rw-r--r--IRCLineHandler.py11
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: