4 # :title: irc logging into the journal
6 # Author:: Matthias Hecker (apoc@geekosphere.org)
8 class JournalIrcLogModule < CoreBotModule
10 include Irc::Bot::Journal
12 Config.register Config::ArrayValue.new('journal.irclog.whitelist',
14 :desc => 'only perform journal irc logging for those channel/users')
16 Config.register Config::ArrayValue.new('journal.irclog.blacklist',
18 :desc => 'exclude journal irc logging for those channel/users')
22 target = payload[:target]
23 whitelist = @bot.config['journal.irclog.whitelist']
24 blacklist = @bot.config['journal.irclog.blacklist']
25 unless whitelist.empty?
26 return unless whitelist.include? target
28 unless blacklist.empty?
29 return if blacklist.include? target
32 @bot.journal.publish('irclog', payload)
36 unless m.kind_of? BasicUserMessage
37 warning 'journal irc logger can\'t log %s message' % [m.class.to_s]
40 type: m.class.name.downcase.match(/(\w+)message/).captures.first,
41 addressed: m.address?,
43 identified: m.identified?,
45 source: m.source.to_s,
46 source_user: m.botuser.to_s,
47 source_address: m.sourceaddress,
48 target: m.target.to_s,
49 server: m.server.to_s,
51 message: m.logmessage,
68 plugin = JournalIrcLogModule.new
69 # make sure the logger gets loaded after the journal