home · contact · privacy
On '001' message, update respective connection's window's prompt nickname.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 11 Jun 2025 17:04:46 +0000 (19:04 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 11 Jun 2025 17:04:46 +0000 (19:04 +0200)
ircplom.py

index 50a916aedfa1c8711810cae54997f33f104297db..b7c165f6bea5b0177d101584d013aaaf6b9a33f7 100755 (executable)
@@ -67,6 +67,7 @@ class EventType(Enum):
     INIT_CONNECT = auto()
     INIT_RECONNECT = auto()
     KEYBINDING = auto()
+    NICK_SET = auto()
     PING = auto()
     PROMPT_ADD = auto()
     QUIT = auto()
@@ -816,6 +817,11 @@ class TuiLoop(Loop):
             conn_win.log.append(msg)
             if conn_win == self.window:
                 self.window.log.draw()
+        elif event.type_ == EventType.NICK_SET:
+            conn_win = self._conn_windows[event.payload[0]]
+            conn_win.prompt.update_prompt(f' {event.payload[1]} ')
+            if conn_win == self.window:
+                self.window.prompt.draw()
         elif event.type_ == EventType.KEYBINDING:
             cmd = self._cmd_name_to_cmd(event.payload[0])
             assert cmd is not None
@@ -929,9 +935,12 @@ class ConnectionLoop(Loop):
         self.broadcast(EventType.RECV, (self._conn_idx, msg))
         if msg.verb == 'PING':
             self._send('PONG', (msg.parameters[0],))
-        if msg.verb == 'ERROR'\
+        elif msg.verb == 'ERROR'\
                 and msg.parameters[0].startswith('Closing link:'):
             self.broadcast(EventType.DISCONNECTED, (self._conn_idx,))
+        elif msg.verb == '001':
+            self.broadcast(EventType.NICK_SET, (self._conn_idx,
+                                                msg.parameters[0]))
 
 
 class KeyboardLoop(Loop):