mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-02 23:54:07 +01:00
Tag NICK messages with the channel as for QUIT messages.
This commit is contained in:
parent
d2749ea4d6
commit
3b78fd2424
@ -655,8 +655,12 @@ class IrcState(IrcCommandDispatcher, log.Firewalled):
|
||||
del self.nicksToHostmasks[oldNick]
|
||||
except KeyError:
|
||||
pass
|
||||
for channel in self.channels.values():
|
||||
channel_names = ircutils.IrcSet()
|
||||
for (name, channel) in self.channels.items():
|
||||
if msg.nick in channel.users:
|
||||
channel_names.add(name)
|
||||
channel.replaceUser(oldNick, newNick)
|
||||
msg.tag('channels', channel_names)
|
||||
|
||||
def doBatch(self, irc, msg):
|
||||
batch_name = msg.args[0][1:]
|
||||
|
@ -470,6 +470,7 @@ class IrcTestCase(SupyTestCase):
|
||||
self.irc.reset()
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #foo'))
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #bar'))
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser2 JOIN #bar2'))
|
||||
class Callback(irclib.IrcCallback):
|
||||
channels_set = None
|
||||
def name(self):
|
||||
@ -484,6 +485,25 @@ class IrcTestCase(SupyTestCase):
|
||||
self.irc.removeCallback(c.name())
|
||||
self.assertEqual(c.channels_set, ircutils.IrcSet(['#foo', '#bar']))
|
||||
|
||||
def testNick(self):
|
||||
self.irc.reset()
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #foo'))
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #bar'))
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser2 JOIN #bar2'))
|
||||
class Callback(irclib.IrcCallback):
|
||||
channels_set = None
|
||||
def name(self):
|
||||
return 'testcallback'
|
||||
def doNick(self2, irc, msg):
|
||||
self2.channels_set = msg.tagged('channels')
|
||||
c = Callback()
|
||||
self.irc.addCallback(c)
|
||||
try:
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser NICK newuser'))
|
||||
finally:
|
||||
self.irc.removeCallback(c.name())
|
||||
self.assertEqual(c.channels_set, ircutils.IrcSet(['#foo', '#bar']))
|
||||
|
||||
def testBatch(self):
|
||||
self.irc.reset()
|
||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser1 JOIN #foo'))
|
||||
|
Loading…
Reference in New Issue
Block a user