Skip to content

Commit 6bc01b0

Browse files
committed
Refactor prefix parser
1 parent 8a7aa86 commit 6bc01b0

1 file changed

Lines changed: 3 additions & 16 deletions

File tree

plugins/chan_track.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@
44
Requires:
55
server_info.py
66
"""
7-
import re
87
import weakref
98
from collections import defaultdict
109
from operator import attrgetter
1110
from weakref import WeakValueDictionary
1211

1312
from 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

1816
class 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-
8875
def 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

Comments
 (0)