From dd41b0dbde6849ec71d60a90dfd8682cfa83c885 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sat, 22 May 2021 08:43:11 +0000 Subject: [PATCH] parse tokens in wait_for - waity things expect state change --- ircrobots/server.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ircrobots/server.py b/ircrobots/server.py index c14865f..5a383a1 100644 --- a/ircrobots/server.py +++ b/ircrobots/server.py @@ -65,7 +65,7 @@ class Server(IServer): self.desired_caps: Set[ICapability] = set([]) self._read_queue: Deque[Line] = deque() - self._process_queue: Deque[Line] = deque() + self._process_queue: Deque[Tuple[Line, Optional[Emit]]] = deque() self._ping_sent = False self._read_lguard = RLock() @@ -298,7 +298,9 @@ class Server(IServer): for done in dones: if isinstance(done.result(), Line): self._ping_sent = False - self._process_queue.append(done.result()) + line = done.result() + emit = self.parse_tokens(line) + self._process_queue.append((line, emit)) elif done.result() is None: if not self._ping_sent: await self.send(build("PING", ["hello"])) @@ -310,8 +312,7 @@ class Server(IServer): notdone.cancel() else: - line = self._process_queue.popleft() - emit = self.parse_tokens(line) + line, emit = self._process_queue.popleft() await self._on_read(line, emit) async def wait_for(self, @@ -334,7 +335,8 @@ class Server(IServer): line = await self._read_line(timeout) if line: self._ping_sent = False - self._process_queue.append(line) + emit = self.parse_tokens(line) + self._process_queue.append((line, emit)) if response_obj.match(self, line): return line