aboutsummaryrefslogtreecommitdiff
path: root/src/utils/irc
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/irc')
-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