home · contact · privacy
Refactor out SendEvent.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 5 Aug 2025 03:39:23 +0000 (05:39 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 5 Aug 2025 03:39:23 +0000 (05:39 +0200)
ircplom/client.py
ircplom/client_tui.py

index 91015b285144f969d7ffe3085b60158f4e6a79cd..417c1d8dfca2263b4eb6ce24f717d90821c5a25c 100644 (file)
@@ -312,13 +312,3 @@ class InitReconnectEvent(ClientEvent):
                              'so nothing to do.')
         else:
             target.start_connecting()
-
-
-@dataclass
-class SendEvent(ClientEvent, PayloadMixin):
-    'To trigger sending of payload to server.'
-    payload: IrcMessage
-    chat: str = ''
-
-    def affect(self, target: 'Client') -> None:
-        target.send(msg=self.payload, chat=self.chat)
index 197ccea975173662d51ea033997b52824127ff78..49d64822647bb825c40b9ed1243fea32d9dc0b30 100644 (file)
@@ -9,7 +9,7 @@ from ircplom.tui_base import (BaseTui, PromptWidget, TuiEvent, Window,
 from ircplom.irc_conn import IrcMessage
 from ircplom.client import (CHAT_GLOB, IrcConnSetup, Client, ClientEvent,
                             ClientIdMixin, ClientQueueMixin,
-                            InitReconnectEvent, NewClientEvent, SendEvent)
+                            InitReconnectEvent, NewClientEvent)
 
 
 CMD_SHORTCUTS['connect'] = 'window.connect'
@@ -55,10 +55,13 @@ class _ClientWindow(Window, ClientQueueMixin):
     def status_title(self) -> str:
         return f'{super().status_title}|{self.client_id}|{self.chat}'
 
+    def _send_msg(self, verb, params, **kwargs) -> None:
+        self._cput(ClientEvent.make_subtype(
+            'send', msg=IrcMessage(verb=verb, params=params), **kwargs))
+
     def cmd__disconnect(self, quit_msg: str = 'ircplom says bye') -> None:
         'Send QUIT command to server.'
-        self._cput(SendEvent,
-                   payload=IrcMessage(verb='QUIT', params=(quit_msg,)))
+        self._send_msg('QUIT', (quit_msg,))
 
     def cmd__connect(self,
                      host_port: str = '',
@@ -73,15 +76,12 @@ class _ClientWindow(Window, ClientQueueMixin):
 
     def cmd__nick(self, new_nick: str) -> None:
         'Attempt nickname change.'
-        self._cput(SendEvent,
-                   payload=IrcMessage(verb='NICK', params=(new_nick,)))
+        self._send_msg('NICK', (new_nick,))
 
     def cmd__privmsg(self, target: str, msg: str) -> None:
         'Send chat message msg to target.'
-        self._cput(ClientEvent.make_subtype(
-            method_to_call='send',
-            msg=IrcMessage(verb='PRIVMSG', params=(target, msg)),
-            chat=target, to_log=f'>[MYSELF] {msg}'))
+        self._send_msg('PRIVMSG', (target, msg), chat=target,
+                       to_log=f'>[MYSELF] {msg}')
 
 
 class _PrivmsgPromptWidget(_ClientPromptWidget):