X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Frbot%2Fircbot.rb;h=bd75bec5d5039f4822d01a8a5460eaba3f4eea52;hb=2fc67aef47db1eb38a4a4251f7550633cc387674;hp=9b6e2d6a548b6889dbbbafa0a3db9533bcb35328;hpb=2ed8235cdb9e92b0bc46ee97ddbf4c4a1f70c6d8;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb index 9b6e2d6a..bd75bec5 100644 --- a/lib/rbot/ircbot.rb +++ b/lib/rbot/ircbot.rb @@ -186,14 +186,14 @@ class Bot attr_reader :socket # bot's object registry, plugins get an interface to this for persistant - # storage (hash interface tied to a bdb file, plugins use Accessors to store + # storage (hash interface tied to a db file, plugins use Accessors to store # and restore objects in their own namespaces.) attr_reader :registry # bot's plugins. This is an instance of class Plugins attr_reader :plugins - # bot's httputil help object, for fetching resources via http. Sets up + # bot's httputil helper object, for fetching resources via http. Sets up # proxies etc as defined by the bot configuration/environment attr_accessor :httputil @@ -491,11 +491,12 @@ class Bot if @config['core.run_as_daemon'] $daemonize = true end + case @config["core.db"] when "bdb" require 'rbot/registry/bdb' when "tc" - require 'rbot/registry/tc' + require 'rbot/registry/tc' else raise _("Unknown DB adaptor: %s") % @config["core.db"] end @@ -731,6 +732,11 @@ class Bot m = WhoisMessage.new(self, server, source, target, data[:whois]) @plugins.delegate "whois", m } + @client[:list] = proc {|data| + source = data[:source] + m = ListMessage.new(self, server, source, source, data[:list]) + @plugins.delegate "irclist", m + } @client[:join] = proc {|data| m = JoinMessage.new(self, server, data[:source], data[:channel], data[:message]) sendq("MODE #{data[:channel]}", nil, 0) if m.address? @@ -934,8 +940,11 @@ class Bot quit if $interrupted > 0 @socket.connect @last_rec = Time.now - rescue => e - raise e.class, "failed to connect to IRC server at #{@socket.server_uri}: #{e}" + rescue Exception => e + uri = @socket.server_uri || '' + error "failed to connect to IRC server at #{uri}" + error e + raise end quit if $interrupted > 0 @@ -983,8 +992,8 @@ class Bot def mainloop while true too_fast = false + quit_msg = nil begin - quit_msg = nil reconnect(quit_msg, too_fast) quit if $interrupted > 0 while @socket.connected?