home · contact · privacy
Move major part of message formatting from ClientWindowsManager.log into TuiClientDb...
authorChristian Heller <c.heller@plomlompom.de>
Wed, 24 Sep 2025 00:44:40 +0000 (02:44 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 24 Sep 2025 00:44:40 +0000 (02:44 +0200)
ircplom/client_tui.py

index 164f079bde5e1c99643be9faf58bdc1e6f8e3b43..b7056f1ed2d5e7db52d4c33b8ba6dcb8d8472c6c 100644 (file)
@@ -306,7 +306,10 @@ class _TuiClientDb(_UpdatingNode, SharedClientDbFields):
                 update.results += [(_LogScope.ALL, [':DISCONNECTED'])]
         elif update.key == 'message' and update.value:
             assert isinstance(update.value, ChatMessage)
-            update.results += [(_LogScope.CHAT, [':' + update.value.content])]
+            who = (f':{update.value.sender}' if update.value.sender
+                   else 'NICK:me')
+            update.results += [(_LogScope.CHAT,
+                                [':[', who, f':] {update.value.content}'])]
 
 
 class _ClientWindowsManager:
@@ -367,19 +370,11 @@ class _ClientWindowsManager:
     def log(self, msg: str, scope: _LogScope, **kwargs) -> None:
         'From parsing scope, kwargs, build prefix before sending to logger.'
         first_char = '$'
-        sender_label = ''
-        receiving: Optional[bool] = None
-        if scope == _LogScope.RAW:
-            receiving = not kwargs.get('out', False)
-        if scope == _LogScope.CHAT and 'sender' in kwargs:
-            receiving = bool(kwargs['sender'])
-            sender_label = ' [' + (kwargs['sender'] if receiving
-                                   else self.db.users['me'].nick) + ']'
-        if receiving is not None:
-            first_char = _LOG_PREFIX_IN if receiving else _LOG_PREFIX_OUT
+        if 'out' in kwargs:
+            first_char = _LOG_PREFIX_OUT if kwargs['out'] else _LOG_PREFIX_IN
             if kwargs.get('is_notice', False):
                 first_char *= 3
-        prefix = f'{first_char}{sender_label}'
+        prefix = f'{first_char}'
         self._tui_log(msg, scope=scope, prefix=prefix, **kwargs)
 
     def update_db(self, update: _Update) -> bool:
@@ -394,7 +389,7 @@ class _ClientWindowsManager:
                 if update.full_path == ('message',):
                     log_kwargs['log_target'] = (update.value.target
                                                 or update.value.sender)
-                    log_kwargs['sender'] = update.value.sender
+                    log_kwargs['out'] = not bool(update.value.sender)
                     log_kwargs['is_notice'] = update.value.is_notice
                 else:
                     log_kwargs['log_target'] = update.full_path[1]