ChannelLogger: include in logs the reasons for parts and quits

This commit is contained in:
Daniel Folkinshteyn 2010-06-15 23:53:15 -04:00
parent a91bc318dc
commit 1ce52f01f4

View File

@ -224,10 +224,14 @@ class ChannelLogger(callbacks.Plugin):
'*** %s was kicked by %s\n', target, msg.nick) '*** %s was kicked by %s\n', target, msg.nick)
def doPart(self, irc, msg): def doPart(self, irc, msg):
if len(msg.args) > 1:
reason = " (%s)" % msg.args[1]
else:
reason = ""
for channel in msg.args[0].split(','): for channel in msg.args[0].split(','):
self.doLog(irc, channel, self.doLog(irc, channel,
'*** %s <%s> has left %s\n', '*** %s <%s> has left %s%s\n',
msg.nick, msg.prefix, channel) msg.nick, msg.prefix, channel, reason)
def doMode(self, irc, msg): def doMode(self, irc, msg):
channel = msg.args[0] channel = msg.args[0]
@ -245,13 +249,17 @@ class ChannelLogger(callbacks.Plugin):
'*** %s changes topic to "%s"\n', msg.nick, msg.args[1]) '*** %s changes topic to "%s"\n', msg.nick, msg.args[1])
def doQuit(self, irc, msg): def doQuit(self, irc, msg):
if len(msg.args) == 1:
reason = " (%s)" % msg.args[0]
else:
reason = ""
if not isinstance(irc, irclib.Irc): if not isinstance(irc, irclib.Irc):
irc = irc.getRealIrc() irc = irc.getRealIrc()
for (channel, chan) in self.lastStates[irc].channels.iteritems(): for (channel, chan) in self.lastStates[irc].channels.iteritems():
if msg.nick in chan.users: if msg.nick in chan.users:
self.doLog(irc, channel, self.doLog(irc, channel,
'*** %s <%s> has quit IRC\n', '*** %s <%s> has quit IRC%s\n',
msg.nick, msg.prefix) msg.nick, msg.prefix, reason)
def outFilter(self, irc, msg): def outFilter(self, irc, msg):
# Gotta catch my own messages *somehow* :) # Gotta catch my own messages *somehow* :)