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]
|
del self.nicksToHostmasks[oldNick]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
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)
|
channel.replaceUser(oldNick, newNick)
|
||||||
|
msg.tag('channels', channel_names)
|
||||||
|
|
||||||
def doBatch(self, irc, msg):
|
def doBatch(self, irc, msg):
|
||||||
batch_name = msg.args[0][1:]
|
batch_name = msg.args[0][1:]
|
||||||
|
@ -470,6 +470,7 @@ class IrcTestCase(SupyTestCase):
|
|||||||
self.irc.reset()
|
self.irc.reset()
|
||||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #foo'))
|
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #foo'))
|
||||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #bar'))
|
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser JOIN #bar'))
|
||||||
|
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser2 JOIN #bar2'))
|
||||||
class Callback(irclib.IrcCallback):
|
class Callback(irclib.IrcCallback):
|
||||||
channels_set = None
|
channels_set = None
|
||||||
def name(self):
|
def name(self):
|
||||||
@ -484,6 +485,25 @@ class IrcTestCase(SupyTestCase):
|
|||||||
self.irc.removeCallback(c.name())
|
self.irc.removeCallback(c.name())
|
||||||
self.assertEqual(c.channels_set, ircutils.IrcSet(['#foo', '#bar']))
|
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):
|
def testBatch(self):
|
||||||
self.irc.reset()
|
self.irc.reset()
|
||||||
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser1 JOIN #foo'))
|
self.irc.feedMsg(ircmsgs.IrcMsg(':someuser1 JOIN #foo'))
|
||||||
|
Loading…
Reference in New Issue
Block a user