From: Christian Heller Date: Sat, 26 Jul 2025 23:30:43 +0000 (+0200) Subject: Minor code reorganization. X-Git-Url: https://plomlompom.com/repos/booking/static/%7B%7Bdb.prefix%7D%7D/process_efforts?a=commitdiff_plain;h=HEAD;p=ircplom Minor code reorganization. --- diff --git a/ircplom/irc_conn.py b/ircplom/irc_conn.py index f7a692c..36be5f9 100644 --- a/ircplom/irc_conn.py +++ b/ircplom/irc_conn.py @@ -203,8 +203,8 @@ class Client(ABC, ClientQueueMixin): self._hostname = hostname self._socket: Optional[socket] = None self._recv_loop: Optional[Loop] = None - self._caps_available: list[str] = [] - self._caps_enabled: list[str] = [] + self._caps: dict[str, set[str]] = { + 'available': set(), 'enabled': set(), 'finished': set()} self.id_ = uuid4() self.assumed_open = False self.realname = realname @@ -234,21 +234,17 @@ class Client(ABC, ClientQueueMixin): Thread(target=connect, daemon=True, args=(self,)).start() - def set_caps(self, - caps: list[str], - final_line: bool, - enabled: bool = False + def set_caps(self, caps: set[str], final_line: bool, enabled: bool ) -> None: 'Record available or enabled server capabilities.' - finished_marker = '\0' - caps_list = self._caps_enabled if enabled else self._caps_available - if caps_list[-1:] == [finished_marker]: - caps_list.clear() - caps_list += caps + category = 'enabled' if enabled else 'available' + if category in self._caps['finished']: + self._caps[category].clear() + self._caps['finished'].remove(category) + self._caps[category] |= caps if final_line: - caps_list += [finished_marker] - self.log(f'# server caps {"enabled" if enabled else "available"}' - f': {caps_list[:-1]}') + self._caps['finished'].add(category) + self.log(f'# server caps {category}: {self._caps[category]}') @abstractmethod def log(self, msg: str, chat: str = '') -> None: @@ -344,4 +340,4 @@ class _RecvEvent(ClientEvent, PayloadMixin): if subverb in {'LS', 'LIST'}: target.set_caps(final_line=msg.params[2] != '*', enabled=subverb == 'LIST', - caps=msg.params[-1].strip().split()) + caps=set(msg.params[-1].strip().split()))