aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorGravatar jesopo2019-05-11 18:22:40 +0100
committerGravatar jesopo2019-05-11 18:22:40 +0100
commitd291cd506373046d703450bc9d97082b89cbe8be (patch)
tree41a80e2c54f041d0bc550e9201c5119a6aab14f6 /src/utils
parentChange ducks-min-message default to 100 (diff)
signature
Revamp how CAPs are tracked through REQ and ACK/NAK etc
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/irc/__init__.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/utils/irc/__init__.py b/src/utils/irc/__init__.py
index 15850cea..2e1ef6e4 100644
--- a/src/utils/irc/__init__.py
+++ b/src/utils/irc/__init__.py
@@ -281,8 +281,17 @@ class Capability(object):
self._caps = set([name, draft_name])
self._name = name
self._draft_name = draft_name
+ self._on_ack_callbacks = []
def available(self, capabilities: typing.List[str]) -> str:
match = list(set(capabilities)&self._caps)
return match[0] if match else None
def enabled(self, capability: str) -> bool:
return capability in self._caps
+
+ def on_ack(self, callback: typing.Callable[[], None]):
+ self._on_ack_callbacks.append(callback)
+ def ack(self):
+ for callback in self._on_ack_callbacks:
+ callback()
+ def nak(self):
+ pass