NICKNAME = auto()
NONE = auto()
SERVER = auto()
- USER_ADDRESS = auto()
+ NICK_USER_HOST = auto()
_MsgTokGuide = str | _MsgTok | tuple[str | _MsgTok, str]
_MsgParseExpectation(_MsgTok.SERVER,
'396', # RPL_VISIBLEHOST
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
- (_MsgTok.ANY, ':host_maybe_w_user'),
+ (_MsgTok.SERVER, 'set_db_attr:client_host'),
_MsgTok.ANY)),
]
_MsgParseExpectation(_MsgTok.SERVER,
'900', # RPL_LOGGEDIN
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
- (_MsgTok.USER_ADDRESS, ':full_address'),
+ (_MsgTok.NICK_USER_HOST, ':full_address'),
(_MsgTok.ANY, 'set_db_attr:sasl_account'),
_MsgTok.ANY)),
_MsgParseExpectation(_MsgTok.SERVER,
(_MsgTok.NICKNAME,
(_MsgTok.NICKNAME, ':used'),
_MsgTok.ANY)),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':named'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':named'),
'NICK',
((_MsgTok.NICKNAME, ':nickname'),)),
]
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
(_MsgTok.CHANNEL, ':channel'),
_MsgTok.ANY)),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':joiner'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':joiner'),
'JOIN',
((_MsgTok.CHANNEL, ':channel'),)),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':parter'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':parter'),
'PART',
((_MsgTok.CHANNEL, ':channel'),)),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':parter'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':parter'),
'PART',
((_MsgTok.CHANNEL, ':channel'),
(_MsgTok.ANY, ':reason'))),
'NOTICE',
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
(_MsgTok.ANY, ':message'))),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':sender'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':sender'),
'NOTICE',
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
(_MsgTok.ANY, ':message'))),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':sender'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':sender'),
'NOTICE',
((_MsgTok.CHANNEL, ':channel'),
(_MsgTok.ANY, ':message'))),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':sender'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':sender'),
'PRIVMSG',
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
(_MsgTok.ANY, ':message'))),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':sender'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':sender'),
'PRIVMSG',
((_MsgTok.CHANNEL, ':channel'),
(_MsgTok.ANY, ':message'))),
'MODE',
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
(_MsgTok.ANY, 'set_db_attr:user_modes'))),
- _MsgParseExpectation(_MsgTok.USER_ADDRESS,
+ _MsgParseExpectation(_MsgTok.NICK_USER_HOST,
'MODE',
((_MsgTok.NICKNAME, 'set_db_attr:nickname'),
(_MsgTok.ANY, 'set_db_attr:user_modes'))),
_MsgParseExpectation(_MsgTok.NONE,
'PING',
((_MsgTok.ANY, ':reply'),)),
- _MsgParseExpectation((_MsgTok.USER_ADDRESS, ':quitter'),
+ _MsgParseExpectation((_MsgTok.NICK_USER_HOST, ':quitter'),
'QUIT',
((_MsgTok.ANY, ':message'),)),
]
} if msg_tok[0] == '#' else None
if ex_tok is _MsgTok.NICKNAME:
return msg_tok if msg_tok[0] not in '~&@%+# ' else None
- if ex_tok is _MsgTok.USER_ADDRESS:
+ if ex_tok is _MsgTok.NICK_USER_HOST:
toks = msg_tok.split('!')
if len(toks) != 2:
return None
self._db.append_completable('motd', ret['line'])
elif ret['verb'] == '376': # RPL_ENDOFMOTD
self._db.declare_complete('motd')
- elif ret['verb'] == '396': # RPL_VISIBLEHOST
- # '@'-split because <https://defs.ircdocs.horse/defs/numerics>
- # claims: "<hostname> can also be in the form <user@hostname>"
- self._db.client_host = ret['host_maybe_w_user'].split('@')[-1]
elif ret['verb'] == '401': # ERR_NOSUCHNICK
self._log(f'{ret["target"]} not online', scope=LogScope.CHAT,
target=ret['target'], alert=True)