home · contact · privacy
Differentiate /privmsg logging failure into STREAM_SAME, to_log into target.
authorChristian Heller <c.heller@plomlompom.de>
Sun, 10 Aug 2025 15:06:11 +0000 (17:06 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 10 Aug 2025 15:06:11 +0000 (17:06 +0200)
ircplom/client.py
ircplom/client_tui.py

index fd192a81c2dcc794c7cafd4c5881653e7e68b4d1..bdbd6244426ecf3fe342378837bdd23b8fe0ac3d 100644 (file)
@@ -13,6 +13,7 @@ from ircplom.irc_conn import (BaseIrcConnection, IrcConnAbortException,
 
 ClientsDb = dict[str, 'Client']
 STREAM_ALL = '*'
+STREAM_SAME = '='
 STREAM_PREFIX_META = ':'
 STREAM_SERVER = f'{STREAM_PREFIX_META}server'
 STREAM_RAW = f'{STREAM_PREFIX_META}raw'
@@ -216,17 +217,17 @@ class Client(ABC, ClientQueueMixin):
 
     def send(self,
              msg: IrcMessage,
-             stream: str = STREAM_SERVER,
-             to_log: str = ''
+             to_log: str = '',
+             stream_for_log: str = STREAM_SERVER
              ) -> None:
-        'Send line-separator-delimited message over socket.'
+        'Send msg over socket, on success log .raw, and optionally set to_log.'
         if not self.conn:
             self._log('cannot send, connection seems closed', alert=True,
-                      stream=stream)
+                      stream=STREAM_SAME)
             return
         self.conn.send(msg)
         if to_log:
-            self._log(to_log, prefix='', stream=stream)
+            self._log(to_log, prefix='', stream=stream_for_log)
         self._log(msg.raw, prefix=_LOG_PREFIX_SEND_RAW, stream=STREAM_RAW)
 
     def update_login(self, nick_confirmed: bool, nickname: str = '') -> None:
@@ -253,7 +254,7 @@ class Client(ABC, ClientQueueMixin):
         self.close()
 
     def handle_msg(self, msg: IrcMessage) -> None:
-        'Process incoming msg towards appropriate client steps.'
+        'Log msg.raw, then process incoming msg into appropriate client steps.'
         self._log(msg.raw, prefix=_LOG_PREFIX_RECV_RAW, stream=STREAM_RAW)
         match msg.verb:
             case 'PING':
index 24969ba0b5525d33c5d0eabbc6ee4df6beeb06b7..457e14a20f6d5f79a4e5fd35f56dcf4571fd3dbf 100644 (file)
@@ -9,7 +9,7 @@ from ircplom.tui_base import (BaseTui, PromptWidget, TuiEvent, Window,
                               CMD_SHORTCUTS)
 from ircplom.irc_conn import IrcMessage
 from ircplom.client import (
-        STREAM_ALL, STREAM_PREFIX_META, STREAM_RAW, STREAM_SERVER,
+        STREAM_ALL, STREAM_SAME, STREAM_PREFIX_META, STREAM_RAW, STREAM_SERVER,
         IrcConnSetup, Client, ClientQueueMixin, NewClientEvent)
 
 CMD_SHORTCUTS['disconnect'] = 'window.disconnect'
@@ -17,8 +17,6 @@ CMD_SHORTCUTS['nick'] = 'window.nick'
 CMD_SHORTCUTS['privmsg'] = 'window.privmsg'
 CMD_SHORTCUTS['reconnect'] = 'window.reconnect'
 
-_STREAM_SAME = '='
-
 
 class _ClientWindow(Window, ClientQueueMixin):
 
@@ -50,8 +48,8 @@ class _ClientWindow(Window, ClientQueueMixin):
 
     def cmd__privmsg(self, target: str, msg: str) -> None:
         'Send chat message msg to target.'
-        self._send_msg('PRIVMSG', (target, msg),
-                       stream=target, to_log=f'>{self.prompt.prefix}{msg}')
+        self._send_msg('PRIVMSG', (target, msg), stream_for_log=target,
+                       to_log=f'>{self.prompt.prefix}{msg}')
 
 
 class _PrivmsgPromptWidget(PromptWidget):
@@ -148,8 +146,8 @@ class ClientTui(BaseTui):
         self._client_mngrs: dict[str, _ClientWindowsManager] = {}
 
     def _log_target_wins(self, **kwargs) -> Sequence[Window]:
-        stream = kwargs.get('stream', _STREAM_SAME)
-        if stream != _STREAM_SAME and 'client_id' in kwargs:
+        stream = kwargs.get('stream', STREAM_SAME)
+        if stream != STREAM_SAME and 'client_id' in kwargs:
             m = self._client_mngrs[kwargs['client_id']]
             if stream == STREAM_SERVER:
                 return [m.window(STREAM_SERVER), m.window(STREAM_RAW)]
@@ -206,7 +204,7 @@ class _ClientKnowingTui(Client):
         'Catch /reconnect, only initiate if not connected, else complain back.'
         if self.conn:
             self._log('not re-connecting since already connected',
-                      stream=_STREAM_SAME, alert=True)
+                      stream=STREAM_SAME, alert=True)
             return
         self._start_connecting()