From f550fc7c7a179fffb73185ca547bded9912a5dda Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Wed, 3 Sep 2025 14:00:47 +0200 Subject: [PATCH] Move topic handling into MSG_EXPECTATIONS, re-name variables for clarity of usage. --- ircplom/client.py | 21 ++++++++++----------- ircplom/msg_parse_expectations.py | 8 ++++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/ircplom/client.py b/ircplom/client.py index fbdbb83..3575b65 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -752,14 +752,17 @@ class Client(ABC, ClientQueueMixin): if 'verb' not in ret: self._log(f'PLEASE IMPLEMENT HANDLER FOR: {msg.raw}') return - for task, args in ret['_tasks'].items(): - for arg in args: + for task, tok_names in ret['_tasks'].items(): + for tok_name in tok_names: if task == 'set_db_attr': - setattr(self._db, arg, ret[arg]) - if task == 'set_me_attr': - setattr(self._db.users['me'], arg, ret[arg]) - if task == 'set_user': - self._db.user_id(ret[arg]) + setattr(self._db, tok_name, ret[tok_name]) + elif task == 'set_me_attr': + setattr(self._db.users['me'], tok_name, ret[tok_name]) + elif task == 'set_topic_attr': + setattr(self._db.channels[ret['CHAN']].topic, + tok_name, ret[tok_name]) + elif task == 'set_user': + self._db.user_id(ret[tok_name]) if ret['verb'] == '005': # RPL_ISUPPORT for item in ret['isupport']: if item[0] == '-': @@ -767,10 +770,6 @@ class Client(ABC, ClientQueueMixin): else: key, data = _Dict.key_val_from_eq_str(item) self._db.isupport[key] = data - elif ret['verb'] == '332': # RPL_TOPIC - self._db.channels[ret['channel']].topic.what = ret['topic'] - elif ret['verb'] == '333': # RPL_TOPICWHOTIME - self._db.channels[ret['channel']].topic.who = ret['author'] elif ret['verb'] == '353': # RPL_NAMREPLY self._db.channels[ret['channel']].add_from_namreply(ret['names']) elif ret['verb'] == '366': # RPL_ENDOFNAMES diff --git a/ircplom/msg_parse_expectations.py b/ircplom/msg_parse_expectations.py index 750c0ae..ecdc637 100644 --- a/ircplom/msg_parse_expectations.py +++ b/ircplom/msg_parse_expectations.py @@ -256,13 +256,13 @@ MSG_EXPECTATIONS += [ _MsgParseExpectation(MsgTok.SERVER, '332', # RPL_TOPIC ((MsgTok.NICKNAME, 'set_me_attr:nick'), - (MsgTok.CHANNEL, ':channel'), - (MsgTok.ANY, ':topic'))), + (MsgTok.CHANNEL, ':CHAN'), + (MsgTok.ANY, 'set_topic_attr:what'))), _MsgParseExpectation(MsgTok.SERVER, '333', # RPL_TOPICWHOTIME ((MsgTok.NICKNAME, 'set_me_attr:nick'), - (MsgTok.CHANNEL, ':channel'), - (MsgTok.NICK_USER_HOST, ':author'), + (MsgTok.CHANNEL, ':CHAN'), + (MsgTok.NICK_USER_HOST, 'set_topic_attr:who'), (MsgTok.ANY, ':timestamp'))), _MsgParseExpectation(MsgTok.SERVER, '353', # RPL_NAMREPLY -- 2.30.2