def _match_msg(self, msg: IrcMessage) -> dict[str, Any]:
'Test .source, .verb, .params.'
- tok_type = (str | _NickUserHost | tuple[str, ...]
- | dict[str, str | _Channel])
+ tok_type = str | _NickUserHost | tuple[str, ...]
def param_match(ex_tok: str | MsgTok, msg_tok: str | list[str]
) -> Optional[tok_type | tuple[tok_type, ...]]:
return msg_tok if ('.' in msg_tok
and not set('@!') & set(msg_tok)) else None
if ex_tok is MsgTok.CHANNEL:
- return {'id': msg_tok, 'db': self._db.channels[msg_tok]
- } if self._db.is_chan_name(msg_tok) else None
+ return msg_tok if self._db.is_chan_name(msg_tok) else None
if ex_tok is MsgTok.NICKNAME:
return (msg_tok
if msg_tok[0] not in self._db.illegal_nick_firstchars
key, data = _Dict.key_val_from_eq_str(item)
self._db.isupport[key] = data
elif ret['verb'] == '353': # RPL_NAMREPLY
- ret['channel']['db'].add_from_namreply(ret['names'])
+ self._db.channels[ret['channel']].add_from_namreply(ret['names'])
elif ret['verb'] == '366': # RPL_ENDOFNAMES
- ret['channel']['db'].user_ids.complete()
+ self._db.channels[ret['channel']].user_ids.complete()
elif ret['verb'] == '372': # RPL_MOTD
self._db.motd.append(ret['line'])
elif ret['verb'] == '376': # RPL_ENDOFMOTD
elif ret['verb'] == 'ERROR':
self.close()
elif ret['verb'] == 'JOIN' and ret['joiner'] != self._db.users['me']:
- ret['channel']['db'].append_nick(ret['joiner'])
+ self._db.channels[ret['channel']].append_nick(ret['joiner'])
elif ret['verb'] == 'NICK':
user_id = self._db.user_id(ret['named'])
self._db.users[user_id].nick = ret['nick']
if 'sender' in ret: # not just server message
kw |= {'sender': ret['sender'].nick, 'scope': LogScope.CHAT,
'target': (ret['sender'].nick if 'nick' in ret
- else ret['channel']['id'])}
+ else ret['channel'])}
self._log(ret['message'], out=False, **kw)
elif ret['verb'] == 'PART':
if ret['parter'] == self._db.users['me']:
- del self._db.channels[ret['channel']['id']]
+ del self._db.channels[ret['channel']]
else:
- ret['channel']['db'].remove_nick(ret['parter'])
+ self._db.channels[ret['channel']].remove_nick(ret['parter'])
elif ret['verb'] == 'PING':
self.send(IrcMessage(verb='PONG', params=(ret['reply'],)))
elif ret['verb'] == 'QUIT':