From a1bc32203f30ffa2f4159ae81ccd7a00837aedbf Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sun, 7 Sep 2025 16:45:19 +0200 Subject: [PATCH] Refactor around PRIVMSG/NOTICE to reduce LogScope references in client.py. --- ircplom/client.py | 15 +++++++-------- ircplom/client_tui.py | 9 ++++++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ircplom/client.py b/ircplom/client.py index 17645ce..3bbe5d7 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -707,7 +707,8 @@ class Client(ABC, ClientQueueMixin): pass @abstractmethod - def _log(self, msg: str, scope=LogScope.SERVER, **kwargs) -> None: + def _log(self, msg: str, scope: Optional[LogScope] = None, **kwargs + ) -> None: pass def send(self, verb: str, *args) -> None: @@ -804,13 +805,11 @@ class Client(ABC, ClientQueueMixin): if user_id == 'me': self.db.nick_wanted = ret['nick'] elif ret['_verb'] in {'NOTICE', 'PRIVMSG'}: - kw: dict[str, bool | str | LogScope] = { - 'as_notice': msg.verb == 'NOTICE'} - if 'sender' in ret: # not just server message - kw |= {'sender': ret['sender'].nick, 'scope': LogScope.CHAT, - 'target': (ret['sender'].nick if 'nick' in ret - else ret['channel'])} - self._log(ret['message'], out=False, **kw) + kw: dict[str, str | bool] = {'as_notice': ret['_verb'] == 'NOTICE'} + if (scope := LogScope.CHAT if 'sender' in ret else None): + kw['them'] = ret['sender'].nick + kw['target'] = kw['them'] if 'nick' in ret else ret['channel'] + self._log(ret['message'], out=False, scope=scope, **kw) elif ret['_verb'] == 'PART': ret['parter'].part(ret['channel'], ret.get('message', '')) if ret['parter'] is self.db.users['me']: diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index f9e0138..8fea54b 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -326,7 +326,7 @@ class _ClientWindowsManager: if scope == LogScope.CHAT: sender_label = ( ' [' + (self.db.users['me'].nick if kwargs['out'] - else kwargs['sender']) + else kwargs['them']) + ']') if kwargs.get('as_notice', False): first_char *= 3 @@ -393,7 +393,7 @@ class ClientTui(BaseTui): if scope == LogScope.CHAT: chatname = (kwargs['target'] if kwargs['target'] != m.db.users['me'].nick - else kwargs['sender']) + else kwargs['them']) return [m.window(LogScope.CHAT, chatname=chatname)] if scope == LogScope.USER: return m.windows_for_userid(kwargs['target']) @@ -469,10 +469,13 @@ class _ClientKnowingTui(Client): return self._start_connecting() - def _log(self, msg: str, scope=LogScope.SERVER, **kwargs) -> None: + def _log(self, msg: str, scope: Optional[LogScope] = None, **kwargs + ) -> None: to_log = [] if msg: to_log += [msg] + if not scope: + scope = LogScope.SERVER for item in to_log: self._client_tui_trigger('log', scope=scope, msg=item, **kwargs) if scope == LogScope.RAW: -- 2.30.2