44Requires:
55server_info.py
66"""
7- import re
87import weakref
98from collections import defaultdict
109from operator import attrgetter
1110from weakref import WeakValueDictionary
1211
1312from cloudbot import hook
14-
15- NUH_RE = re .compile (r'(?P<nick>.+?)(?:!(?P<user>.+?))?(?:@(?P<host>.+?))?' )
13+ from cloudbot .util .parsers .irc import Prefix
1614
1715
1816class WeakDict (dict ):
@@ -74,17 +72,6 @@ def init_chan_data(conn):
7472 users .clear ()
7573
7674
77- def parse_nuh (mask ):
78- match = NUH_RE .fullmatch (mask )
79- if not match :
80- return None , None , None
81-
82- nick = match .group ('nick' )
83- user = match .group ('user' )
84- host = match .group ('host' )
85- return nick , user , host
86-
87-
8875def replace_user_data (conn , chan_data ):
8976 statuses = {status .prefix : status for status in set (conn .memory ["server_info" ]["statuses" ].values ())}
9077 users = conn .memory ["users" ]
@@ -111,8 +98,8 @@ def replace_user_data(conn, chan_data):
11198 memb_data ["status" ] = user_statuses
11299
113100 if has_uh_i_n :
114- nick , user , host = parse_nuh (name )
115- user_data .update ({"nick" : nick , "ident" : user , "host" : host })
101+ pfx = Prefix . parse (name )
102+ user_data .update ({"nick" : pfx . nick , "ident" : pfx . user , "host" : pfx . host })
116103 else :
117104 user_data ["nick" ] = name
118105
0 commit comments