aboutsummaryrefslogtreecommitdiff
path: root/src/utils/irc/__init__.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-05-11 15:11:09 +0100
committerGravatar jesopo2019-05-11 15:11:09 +0100
commit295f7a751c9f4917ddd6017c61945e7588b7000d (patch)
tree4235a9c7c2b776b2f91808f34af77434ef1a2690 /src/utils/irc/__init__.py
parentRemove unused SCRAM functions from sasl/__init__.py (diff)
signature
Refactor CAPs in to objects
Diffstat (limited to 'src/utils/irc/__init__.py')
-rw-r--r--src/utils/irc/__init__.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/utils/irc/__init__.py b/src/utils/irc/__init__.py
index 3e285995..15850cea 100644
--- a/src/utils/irc/__init__.py
+++ b/src/utils/irc/__init__.py
@@ -275,3 +275,14 @@ class IRCSendBatch(IRCBatch):
self._add_line(utils.irc.protocol.message(target, message, tags))
def notice(self, target: str, message: str, tags: dict={}):
self._add_line(utils.irc.protocol.notice(target, message, tags))
+
+class Capability(object):
+ def __init__(self, name, draft_name=None):
+ self._caps = set([name, draft_name])
+ self._name = name
+ self._draft_name = draft_name
+ 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