home · contact · privacy
Move RAW logging out of Client into ClientKnowingTui.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 20 Sep 2025 09:19:04 +0000 (11:19 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 20 Sep 2025 09:19:04 +0000 (11:19 +0200)
ircplom/client.py
ircplom/client_tui.py

index 7d569422ebf8347c2c39bd9ba5b9412f4bde1204..a23eb44ceafc63377a40fcb89123e9229be7ff75 100644 (file)
@@ -824,17 +824,16 @@ class Client(ABC, ClientQueueMixin):
              ) -> None:
         pass
 
-    def send(self, verb: str, *args) -> None:
+    def send(self, verb: str, *args) -> IrcMessage:
         'Send msg over socket, on success log .raw.'
         if not self.conn:
             raise SendFail('cannot send, connection seems closed')
         msg = IrcMessage(verb, args)
         self.conn.send(msg)
-        self._log(msg.raw, scope=LogScope.RAW, out=True)
+        return msg
 
     def handle_msg(self, msg: IrcMessage) -> None:
         'Log msg.raw, then process incoming msg into appropriate client steps.'
-        self._log(msg.raw, scope=LogScope.RAW, out=False)
         ret = {}
         for ex in [ex for ex in MSG_EXPECTATIONS if ex.verb == msg.verb]:
             result = ex.parse_msg(
index 8ac8e190956c7e51714d0756291c952205491538..722ab0220487ac9f1de62a527de5e877dae1b6dc 100644 (file)
@@ -9,6 +9,7 @@ from ircplom.client import (
         AutoAttrMixin, Channel, Client, ClientQueueMixin, Dict, DictItem,
         IrcConnSetup, LogScope, NewClientEvent, NickUserHost, SendFail,
         ServerCapability, SharedClientDbFields, User)
+from ircplom.irc_conn import IrcMessage
 
 CMD_SHORTCUTS['disconnect'] = 'window.disconnect'
 CMD_SHORTCUTS['join'] = 'window.join'
@@ -492,6 +493,15 @@ class ClientKnowingTui(Client):
             return
         self.connect()
 
+    def send(self, verb: str, *args) -> IrcMessage:
+        msg = super().send(verb, *args)
+        self._log(msg.raw, scope=LogScope.RAW, out=True)
+        return msg
+
+    def handle_msg(self, msg: IrcMessage) -> None:
+        self._log(msg.raw, scope=LogScope.RAW, out=False)
+        super().handle_msg(msg)
+
     def _log(self, msg: str, scope: Optional[LogScope] = None, **kwargs
              ) -> None:
         to_log = []