From 9c8f05bc16af1b58e6775fb5dc48cf7ee23f8526 Mon Sep 17 00:00:00 2001 From: Valentin Lorentz Date: Sat, 22 Aug 2015 10:33:59 +0200 Subject: [PATCH] Use IRCv3.2 extension userhost-in-names if available. --- src/irclib.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/irclib.py b/src/irclib.py index 15b36bfb1..daceba3d3 100644 --- a/src/irclib.py +++ b/src/irclib.py @@ -509,11 +509,16 @@ class IrcState(IrcCommandDispatcher, log.Firewalled): def do353(self, irc, msg): # NAMES reply. - (__, type, channel, names) = msg.args + (__, type, channel, items) = msg.args if channel not in self.channels: self.channels[channel] = ChannelState() c = self.channels[channel] - for name in names.split(): + for item in items.split(): + if ircutils.isUserHostmask(item): + name = ircutils.nickFromHostmask() + self.nicksToHostmasks[name] = name + else: + name = item c.addUser(name) if type == '@': c.modes['s'] = None @@ -949,7 +954,8 @@ class Irc(IrcCommandDispatcher, log.Firewalled): REQUEST_CAPABILITIES = set(['account-notify', 'extended-join', - 'multi-prefix', 'metadata-notify', 'account-tag']) + 'multi-prefix', 'metadata-notify', 'account-tag', + 'userhost-in-names']) def _queueConnectMessages(self): if self.zombie: