From d291cd506373046d703450bc9d97082b89cbe8be Mon Sep 17 00:00:00 2001 From: jesopo Date: Sat, 11 May 2019 18:22:40 +0100 Subject: Revamp how CAPs are tracked through REQ and ACK/NAK etc --- src/utils/irc/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/utils') 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 -- cgit v1.3.1-10-gc9f91