rendered paste bodyIndex: lib/rbot/ircbot.rb===================================================================--- lib/rbot/ircbot.rb (revision 750)+++ lib/rbot/ircbot.rb (working copy)@@ -440,15 +440,15 @@ @plugins = Plugins::pluginmanager @plugins.bot_associate(self) setup_plugins_path()++ @socket = IrcSocket.new(@config['server.name'], @config['server.port'], @config['server.bindhost'], @config['server.sendq_delay'], @config['server.sendq_burst'], :ssl => @config['server.ssl'])+ @client = Client.new+ @plugins.scan Utils.set_safe_save_dir("#{botclass}/safe_save") @httputil = Utils::HttpUtil.new(self) -- @socket = IrcSocket.new(@config['server.name'], @config['server.port'], @config['server.bindhost'], @config['server.sendq_delay'], @config['server.sendq_burst'], :ssl => @config['server.ssl'])- @client = Client.new- # Channels where we are quiet # Array of channels names where the bot should be quiet # '*' means all channelsIndex: lib/rbot/ircsocket.rb===================================================================--- lib/rbot/ircsocket.rb (revision 750)+++ lib/rbot/ircsocket.rb (working copy)@@ -258,6 +258,26 @@ # max lines to burst attr_reader :sendq_burst + # an optional filter object. we call @filter.in(data) for+ # all incoming data and @filter.out(data) for all outgoing data+ attr_reader :filter++ # default trivial filter class+ class IdentityFilter+ def in(x)+ x+ end++ def out(x)+ x+ end+ end++ # set filter to identity, not to nil+ def filter=(f)+ @filter = f || IdentityFilter.new+ end+ # server:: server to connect to # port:: IRCd port # host:: optional local host to bind to (ruby 1.7+ required)@@ -271,6 +291,7 @@ @port = port.to_i @host = host @sock = nil+ @filter = IdentityFilter.new @spooler = false @lines_sent = 0 @lines_received = 0@@ -380,7 +401,7 @@ return nil end begin- reply = @sock.gets+ reply = @filter.in(@sock.gets) @lines_received += 1 reply.strip! if reply debug "RECV: #{reply.inspect}"@@ -483,7 +504,7 @@ if @sock.nil? error "SEND attempted on closed socket" else- @sock.puts message+ @sock.puts(@filter.out(message)) @last_send = Time.new @flood_send += message.irc_send_penalty if penalty @lines_sent += 1