home · contact · privacy
Fix message token parser only looking up upper names for dict values, not attrs.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 22 Sep 2025 02:20:52 +0000 (04:20 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 22 Sep 2025 02:20:52 +0000 (04:20 +0200)
ircplom/client.py

index e64b4ca657a8b376ead1a7a19be52d982a9c8b6f..f75998122adf64ef0f4b826ae630035ce657e114 100644 (file)
@@ -397,7 +397,7 @@ class _Channel(Channel):
         self.purge_users = purge_users
         super().__init__(**kwargs)
 
-    def add_from_namreply(self, items: tuple[str, ...]):
+    def add_from_namreply(self, items: tuple[str, ...]) -> None:
         'Add to .user_ids items assumed as nicknames with membership prefixes.'
         for item in items:
             n_u_h = NickUserHost(item.lstrip(self._get_membership_prefixes()))
@@ -861,9 +861,9 @@ class Client(ABC, ClientQueueMixin):
                                     if t[0].verb == verb]:
                 node = self
                 for step in task.path:
-                    node = (node[ret[step] if step.isupper() else step]
-                            if isinstance(node, Dict)
-                            else getattr(node, step))
+                    key = ret[step] if step.isupper() else step
+                    node = (node[key] if isinstance(node, Dict)
+                            else getattr(node, key))
                 for tok_name in tok_names:
                     if task.verb == 'setattr':
                         setattr(node, tok_name, ret[tok_name])