aboutsummaryrefslogtreecommitdiff
path: root/src/IRCServer.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-08 10:17:13 +0100
committerGravatar jesopo2019-06-08 10:17:13 +0100
commit16b93613715ae25e5befe50ed01e8457a4258e8d (patch)
treeaa0508eff89199a693a6cf44086f7202fd6af327 /src/IRCServer.py
parentself._get_sts no longer exists (diff)
signature
Only request a CAP once. closes #66
Diffstat (limited to 'src/IRCServer.py')
-rw-r--r--src/IRCServer.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/IRCServer.py b/src/IRCServer.py
index bece7609..cd30d1c9 100644
--- a/src/IRCServer.py
+++ b/src/IRCServer.py
@@ -28,6 +28,9 @@ class Server(IRCObject.Object):
self.capability_queue = {
} # type: typing.Dict[str, utils.irc.Capability]
+ self.capabilities_requested = {
+ } # type: typing.Dict[str, utils.irc.Capability]
+
self._capabilities_waiting = set([]) # type: typing.Set[str]
self.agreed_capabilities = set([]) # type: typing.Set[str]
self.server_capabilities = {} # type: typing.Dict[str, str]
@@ -283,11 +286,18 @@ class Server(IRCObject.Object):
def send_capibility_ls(self) -> IRCLine.SentLine:
return self.send(utils.irc.protocol.capability_ls())
def send_capability_queue(self):
- capability_queue = [cap for cap in self.capability_queue.keys()]
+ capability_queue = list(self.capability_queue.keys())
for i in range(0, len(capability_queue), 10):
capability_batch = capability_queue[i:i+10]
+
+ for cap_name in capability_batch:
+ cap = self.capability_queue[cap_name]
+ del self.capability_queue[cap_name]
+ self.capabilities_requested[cap_name] = cap
+
self.send_capability_request(" ".join(capability_batch))
+
def send_capability_request(self, capability: str) -> IRCLine.SentLine:
return self.send(utils.irc.protocol.capability_request(capability))
def send_capability_end(self) -> IRCLine.SentLine: