I have been helping the Ubuntu Community enhance their logging of IRC meetings. Now, I was looking for a way to automate the process of making summaries from IRC meetings. I took the tags from Mootbot and started to modify a Supybot plugin known as `ChannelLogger.
I hope to provide the plugin as soon as I am clear on the license.
After much studying of the uncommented code, I figured out how to modify the existing code from Channel Logger. I modified the function doPrivmsg to only log when certain tags started a message.
def doPrivmsg(self, irc, msg):
""" Altered from Channel Logger to only log certain tagged lines """
(recipients, text) = msg.args
for channel in recipients.split(','):
if irc.isChannel(channel):
nick = msg.nick or irc.nick
if text.startswith('[action]'):
# msg begins with [action]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('[idea]'):
# msg begins with [idea]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('[topic]'):
# msg begins with [topic]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('[agreed]'):
# msg begins with [agreed]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('[link]'):
# msg begins with [link]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('[todo]'):
# msg begins with [todo]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('[done]'):
# msg begins with [done]
self.doLog(irc, channel, '<%s> %s\n', nick, text)
elif text.startswith('*end*'):
# mark log with end banner
self.doLog(irc, channel, '%s\n', '**** MEETING FINISHES HERE****')
elif text.startswith('*start*'):
# mark log with start banner
self.doLog(irc, channel, '%s\n', '**** MEETING BEGINS HERE****')
# else:
# self.doLog(irc, channel, '%s\n', '')
I removed most of the 'do' functions from the code except for the doLog and doPrivmsg. I also replaced all instances of ChannelLogger with ChannelSummer in each file.
The following tags are outputted to the log.
* [action] to denote an action to be taken. * [idea] to denote a choice or idea on a topic. * [topic] to denote a topic from the agenda. * [agreed] to denote an agreement from a vote. * [link] to denote a link for more information. * [todo] to denote an item to be done. * [done] to denote an item that has been finished.
In addition, there are two other tags to mark out an IRC meeting block.
* *start* marks the log with a start banner. * *end* marks the log with an end banner.
The original config file still operates like before. So you keep your similar settings between Channel Logger and Channel Summer.
Contact with Questions or Feedback: Send email to tjaustinbardo AT gmail DOT com
modified: August 18, 2007, at 08:27 PM