From: Christian Heller Date: Thu, 10 Jul 2025 14:14:11 +0000 (+0200) Subject: Minor refactoring. X-Git-Url: https://plomlompom.com/repos/add_task?a=commitdiff_plain;h=c114ffbcfe271d2f66bd36a197e67501ab2792db;p=ircplom Minor refactoring. --- diff --git a/ircplom/irc_conn.py b/ircplom/irc_conn.py index bdcb901..be7d7b6 100644 --- a/ircplom/irc_conn.py +++ b/ircplom/irc_conn.py @@ -75,9 +75,9 @@ class NickSetEvent(ConnEvent): 'Event to signal nickname having been set server-side.' -class SendEvent(ConnEvent, PayloadMixin): +class _SendEvent(ConnEvent, PayloadMixin): 'Event to trigger sending of payload to server.' - payload: 'IrcMessage' + payload: '_IrcMessage' class BroadcastConnMixin(BroadcastMixin, ConnIdxMixin): @@ -90,6 +90,10 @@ class BroadcastConnMixin(BroadcastMixin, ConnIdxMixin): 'Broadcast event subclassing ConnEvent, with connection ID.' self.broadcast(event_class, conn_idx=self.conn_idx, *args, **kwargs) + def send(self, verb: str, parameters: tuple[str, ...]) -> None: + 'Broadcast _SendEvent for _IrcMessage(verb, parameters).' + self.broadcast_conn(_SendEvent, _IrcMessage(verb, parameters)) + class IrcConnection(BroadcastConnMixin): 'Abstracts socket connection, loop over it, and handling messages from it.' @@ -187,10 +191,6 @@ class IrcConnection(BroadcastConnMixin): return self._socket.sendall(line.encode('utf-8') + _IRCSPEC_LINE_SEPARATOR) - def send(self, verb: str, parameters: tuple[str, ...]) -> None: - 'Broadcast SendEvent for IrcMessage(verb, parameters).' - self.broadcast_conn(SendEvent, IrcMessage(verb, parameters)) - def handle(self, event: ConnEvent) -> None: 'Process connection-directed Event into further steps.' if isinstance(event, InitReconnectEvent): @@ -208,12 +208,12 @@ class IrcConnection(BroadcastConnMixin): # self.send('CAP', ('END',)) elif isinstance(event, _DisconnectedEvent): self.close() - elif isinstance(event, SendEvent): + elif isinstance(event, _SendEvent): self.broadcast_conn(LogConnEvent, f'->: {event.payload.raw}') self._write_line(event.payload.raw) -class IrcMessage: +class _IrcMessage: 'Properly structured representation of IRC message as per IRCv3 spec.' _raw: Optional[str] = None @@ -230,7 +230,7 @@ class IrcMessage: @classmethod def from_raw(cls, raw_msg: str) -> Self: - 'Parse raw IRC message line into properly structured IrcMessage.' + 'Parse raw IRC message line into properly structured _IrcMessage.' class _Stage(NamedTuple): name: str @@ -321,7 +321,7 @@ class _ConnectionLoop(Loop): self._conn = conn def process_bonus(self, yielded: str) -> None: - msg = IrcMessage.from_raw(yielded) + msg = _IrcMessage.from_raw(yielded) self._conn.broadcast_conn(LogConnEvent, f'<-: {msg.raw}') if msg.verb == 'PING': self._conn.send('PONG', (msg.parameters[0],)) diff --git a/ircplom/tui.py b/ircplom/tui.py index fa2fcc7..3c1a802 100644 --- a/ircplom/tui.py +++ b/ircplom/tui.py @@ -14,8 +14,8 @@ from ircplom.events import (BroadcastMixin, Event, EventQueue, Loop, PayloadMixin, QuitEvent) from ircplom.irc_conn import ( BroadcastConnMixin, ConnEvent, InitConnectEvent, InitConnWindowEvent, - InitReconnectEvent, IrcMessage, LoginNames, LogConnEvent, NickSetEvent, - SendEvent, TIMEOUT_LOOP) + InitReconnectEvent, LoginNames, LogConnEvent, NickSetEvent, + TIMEOUT_LOOP) _MIN_HEIGHT = 4 _MIN_WIDTH = 32 @@ -393,7 +393,7 @@ class _ConnectionWindow(_Window, BroadcastConnMixin): def cmd__disconnect(self, quit_msg: str = 'ircplom says bye') -> None: 'Send QUIT command to server.' - self.broadcast_conn(SendEvent, IrcMessage('QUIT', (quit_msg, ))) + self.send('QUIT', (quit_msg, )) def cmd__reconnect(self) -> None: 'Attempt reconnection.' @@ -401,7 +401,7 @@ class _ConnectionWindow(_Window, BroadcastConnMixin): def cmd__nick(self, new_nick: str) -> None: 'Attempt nickname change.' - self.broadcast_conn(SendEvent, IrcMessage('NICK', (new_nick, ))) + self.send('NICK', (new_nick, )) class _KeyboardLoop(Loop, BroadcastMixin):