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

index 417c1d8dfca2263b4eb6ce24f717d90821c5a25c..97c0393b6af6e49f3ce80bc4d593c21a0dabb8b3 100644 (file)
@@ -190,6 +190,9 @@ class Client(ABC, ClientQueueMixin):
 
         def connect(self) -> None:
             try:
+                if self.conn:
+                    raise IrcConnAbortException(
+                            'not re-connecting since already connected')
                 self.conn = _IrcConnection(hostname=self.conn_setup.hostname,
                                            port=self.conn_setup.port,
                                            q_out=self.q_out,
@@ -300,15 +303,3 @@ class NewClientEvent(AffectiveEvent, PayloadMixin):
 
     def affect(self, target: ClientsDb) -> None:
         target[self.payload.id_] = self.payload
-
-
-@dataclass
-class InitReconnectEvent(ClientEvent):
-    'To trigger re-opening of connection.'
-
-    def affect(self, target: 'Client') -> None:
-        if target.conn:
-            target.log.alert('reconnection called, but still seem connected, '
-                             'so nothing to do.')
-        else:
-            target.start_connecting()
index 25aa7f43285841d1f81b1f28462da51ed1f82472..59cd1e498c0864a01e2275336dc194edafac49c0 100644 (file)
@@ -8,8 +8,7 @@ from ircplom.tui_base import (BaseTui, PromptWidget, TuiEvent, Window,
                               CMD_SHORTCUTS)
 from ircplom.irc_conn import IrcMessage
 from ircplom.client import (CHAT_GLOB, IrcConnSetup, Client, ClientEvent,
-                            ClientIdMixin, ClientQueueMixin,
-                            InitReconnectEvent, NewClientEvent)
+                            ClientIdMixin, ClientQueueMixin, NewClientEvent)
 
 
 CMD_SHORTCUTS['connect'] = 'window.connect'
@@ -72,7 +71,7 @@ class _ClientWindow(Window, ClientQueueMixin):
         if host_port:
             self._parent.cmd__connect(host_port, nickname_pw, realname)
         else:
-            self._cput(InitReconnectEvent)
+            self._cput(ClientEvent.make_subtype('start_connecting'))
 
     def cmd__nick(self, new_nick: str) -> None:
         'Attempt nickname change.'