home · contact · privacy
Avoid confusing ret key "params".
authorChristian Heller <c.heller@plomlompom.de>
Tue, 19 Aug 2025 10:14:52 +0000 (12:14 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 19 Aug 2025 10:14:52 +0000 (12:14 +0200)
ircplom/client.py

index 26f9b17c205f383d10040440e3f8f51015abd2c9..692625b2209ef27a22ed2d8d4bf8c6fc1b36092a 100644 (file)
@@ -598,7 +598,7 @@ class Client(ABC, ClientQueueMixin):
     def _match_msg(self, msg: _IrcMsg, verb: str):
         'Test .source, .verb, .params.'
         for ex in [ex for ex in _EXPECTATIONS if verb == ex.verb == msg.verb]:
-            to_return: dict[str, Any] = {'params': []}
+            to_return: dict[str, Any] = {'': ''}
             if ex.source is _MsgSource.NONE:
                 if msg.source != '':
                     continue
@@ -638,7 +638,7 @@ class Client(ABC, ClientQueueMixin):
                                 continue
                         to_return['nickname_me'] = to_return['nickname']
                     elif exp_param is _MsgParam.ANY:
-                        to_return['params'] += [param]
+                        to_return['any'] = param
             elif len_params < ex.len_min_params:
                 continue
             elif ex.len_max_params and len_params > ex.len_max_params:
@@ -718,7 +718,7 @@ class Client(ABC, ClientQueueMixin):
                 ret['channel'].append_completable('users', ret['sender'],
                                                   stay_complete=True)
         elif (ret := self._match_msg(msg, 'MODE')):
-            self._db.user_modes = ret['params'][0]
+            self._db.user_modes = ret['any']
         elif (ret := self._match_msg(msg, 'NICK')):
             self.set_nick(ret['nickname'], confirmed=True)
         elif (ret := self._match_msg(msg, 'NOTICE'))\
@@ -733,7 +733,7 @@ class Client(ABC, ClientQueueMixin):
             self._log(msg.params[-1], out=False, target=msg.params[0], **kw)
         elif (ret := self._match_msg(msg, 'PART')):
             log_msg = f'{ret["sender"]} {msg.verb.lower()}s {ret["ch_name"]}'
-            log_msg += f': {ret["params"][0]}' if ret['params'] else ''
+            log_msg += f': {ret["any"]}' if 'any' in ret else ''
             self._log(log_msg, scope=LogScope.CHAT, target=ret['ch_name'])
             if 'sender_me' in ret:
                 self._db.del_chan(ret['ch_name'])
@@ -741,14 +741,14 @@ class Client(ABC, ClientQueueMixin):
                 ret['channel'].remove_completable('users', ret['sender'],
                                                   stay_complete=True)
         elif (ret := self._match_msg(msg, 'PING')):
-            self.send(IrcMessage(verb='PONG', params=tuple(ret['params'])))
+            self.send(IrcMessage(verb='PONG', params=(ret['any'],)))
         elif (ret := self._match_msg(msg, 'QUIT')):
             for chan_name in self._db.chan_names:
                 chan = self._db.chan(chan_name)
                 if ret['sender'] in chan.users:
                     chan.remove_completable('users', ret['sender'],
                                             stay_complete=True)
-                    self._log(f'{ret["sender"]} quits: {ret["params"][0]}',
+                    self._log(f'{ret["sender"]} quits: {ret["any"]}',
                               scope=LogScope.CHAT, target=chan_name)
         else:
             self._log(f'PLEASE IMPLEMENT HANDLER FOR: {msg.raw}')