From: Christian Heller <c.heller@plomlompom.de>
Date: Fri, 30 May 2025 13:30:11 +0000 (+0200)
Subject: Move prompt command processing out of TuiLoop.
X-Git-Url: https://plomlompom.com/repos/%22https:/validator.w3.org/static/tasks?a=commitdiff_plain;h=e2880846c4486f73f9ffaff367204ff2d42179f7;p=ircplom

Move prompt command processing out of TuiLoop.
---

diff --git a/ircplom.py b/ircplom.py
index ddea13e..2e5defc 100755
--- a/ircplom.py
+++ b/ircplom.py
@@ -357,11 +357,7 @@ class TuiLoop(Loop):
             self._draw_log()
         elif event.type_ == 'INPUT_PROMPT':
             if event.payload[0] == 'ENTER':
-                toks = self._prompt.split(maxsplit=1)
-                if toks and toks[0] in {'QUIT'}:
-                    self.broadcast('SEND', IrcMessage(toks[0], toks[1:]))
-                else:
-                    self.broadcast('ALERT', f'invalid message: {self._prompt}')
+                self.broadcast('PROMPT_COMMAND', self._prompt)
                 self._prompt = ''
             elif event.payload[0] == 'BACKSPACE':
                 self._prompt = self._prompt[:-1]
@@ -450,6 +446,15 @@ def run() -> None:
                         q_to_main.put(
                                 Event('SEND',
                                       IrcMessage('PONG', [msg.parameters[0]])))
+                elif event.type_ == 'PROMPT_COMMAND':
+                    toks = event.payload.split(maxsplit=1)
+                    if toks and toks[0] in {'QUIT'}:
+                        q_to_main.put(
+                                Event('SEND', IrcMessage(toks[0], toks[1:])))
+                    else:
+                        q_to_main.put(
+                            Event('ALERT',
+                                  f'invalid message: {event.payload}'))
 
 
 if __name__ == '__main__':