From 8cfb51f8e242309acfbe3c25961991f7bfc0853e Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Tue, 5 Aug 2025 05:39:23 +0200 Subject: [PATCH] Refactor out SendEvent. --- ircplom/client.py | 10 ---------- ircplom/client_tui.py | 18 +++++++++--------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/ircplom/client.py b/ircplom/client.py index 91015b2..417c1d8 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -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) diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index 197ccea..49d6482 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -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): -- 2.30.2