home · contact · privacy
Handle 353, 366, 372, 376 in new pattern.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 19 Aug 2025 16:29:16 +0000 (18:29 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 19 Aug 2025 16:29:16 +0000 (18:29 +0200)
ircplom/client.py

index 85a66ee2f3df5ef11787f0e867a92d73d668caad..639ce14de8a9803035d2a354e29ea14a0c83fcb2 100644 (file)
@@ -61,12 +61,16 @@ class _MsgParseExpectation(NamedTuple):
 
 _EXPECTATIONS: tuple[_MsgParseExpectation, ...] = (
    _MsgParseExpectation(_MsgTok.SERVER, '005', 3, 15),
-   _MsgParseExpectation(_MsgTok.SERVER, '353', params=(_MsgTok.NICKNAME_ME,
-                                                       '=', _MsgTok.CHANNEL,
-                                                       _MsgTok.LIST,)),
-   _MsgParseExpectation(_MsgTok.SERVER, '366', 3),
-   _MsgParseExpectation(_MsgTok.SERVER, '372', 2),
-   _MsgParseExpectation(_MsgTok.SERVER, '376', 2),
+   _MsgParseExpectation(_MsgTok.SERVER, '353',
+                        params=(_MsgTok.NICKNAME_ME, '=', _MsgTok.CHANNEL,
+                                _MsgTok.LIST,)),
+   _MsgParseExpectation(_MsgTok.SERVER, '366',
+                        params=(_MsgTok.NICKNAME_ME, _MsgTok.CHANNEL,
+                                _MsgTok.ANY)),
+   _MsgParseExpectation(_MsgTok.SERVER, '372',
+                        params=(_MsgTok.NICKNAME_ME, _MsgTok.ANY)),
+   _MsgParseExpectation(_MsgTok.SERVER, '376',
+                        params=(_MsgTok.NICKNAME_ME, _MsgTok.ANY)),
    _MsgParseExpectation(_MsgTok.SERVER, '396', 3),
    _MsgParseExpectation(_MsgTok.SERVER, '401', 3),
    _MsgParseExpectation(_MsgTok.SERVER, '432', 3),
@@ -649,8 +653,8 @@ class Client(ABC, ClientQueueMixin):
                 ret['channel'].append_completable('users', usr.lstrip('~&@%+'))
         elif self._match_msg(msg, '366'):  # RPL_ENDOFNAMES
             self._db.chan(msg.params[1]).declare_complete('users')
-        elif self._match_msg(msg, '372'):  # RPL_MOTD
-            self._db.append_completable('motd', msg.params[1])
+        elif (ret := self._match_msg(msg, '372')):  # RPL_MOTD
+            self._db.append_completable('motd', ret['any'])
         elif self._match_msg(msg, '376'):  # RPL_ENDOFMOTD
             self._db.declare_complete('motd')
         elif self._match_msg(msg, '396'):  # RPL_VISIBLEHOST