]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blob - lib/rbot/core/journal.rb
journal: simplified irc logging
[user/henk/code/ruby/rbot.git] / lib / rbot / core / journal.rb
1 #-- vim:sw=2:et
2 #++
3 #
4 # :title: rbot journal management from IRC
5 #
6 # Author:: Matthias Hecker (apoc@geekosphere.org)
7
8 require 'rbot/journal'
9
10 class JournalModule < CoreBotModule
11
12   attr_reader :broker
13
14   include Irc::Bot::Journal
15
16   Config.register Config::StringValue.new('journal.storage',
17     :default => nil,
18     :requires_rescan => true,
19     :desc => 'storage engine used by the journal')
20   Config.register Config::StringValue.new('journal.storage.uri',
21     :default => nil,
22     :requires_rescan => true,
23     :desc => 'storage database uri')
24
25   def initialize
26     super
27     storage = nil
28     name = @bot.config['journal.storage']
29     uri = @bot.config['journal.storage.uri']
30     if name
31       begin
32         storage = Storage.create(name, uri)
33       rescue
34         error 'journal storage initialization error!'
35         error $!
36         error $@.join("\n")
37       end
38     end
39     debug 'journal broker starting up...'
40     @broker = JournalBroker.new(storage: storage)
41   end
42
43   def cleanup
44     super
45     debug 'journal broker shutting down...'
46     @broker.shutdown
47     @broker = nil
48   end
49
50   def help(plugin, topic='')
51     'journal'
52   end
53
54 end
55
56 journal = JournalModule.new
57 journal.priority = -2
58