lib/botfly/bot.rb in botfly-0.2.1 vs lib/botfly/bot.rb in botfly-0.3.0

- old
+ new

@@ -1,53 +1,60 @@ require 'rubygems' module Botfly class Bot < CommonBlockAcceptor - attr_reader :jid + attr_accessor :responders, :client, :roster, :jid - def initialize(jid,pass) + def initialize(jid,pass, opts = {}) super Botfly.logger.info(" BOT: Bot#new") @password = pass @jid = Jabber::JID.new(jid) @client = Jabber::Client.new(@jid) @main_thread = Thread.current + if opts[:gtalk] + @host = "talk.google.com" + end end def connect - Botfly.logger.info(" BOT: Connecting to #{@jid}...") - @client.connect + Botfly.logger.info(" BOT: Connecting to #{@host || @jid}...") + @client.connect(@host) @client.auth(@password) Botfly.logger.info(" BOT: Connected") register_for_callbacks @client.send(Jabber::Presence.new.set_status("Carrier has arrived")) + @roster = Jabber::Roster::Helper.new(@client) #Thread.stop end - + def join(room_name,&block) return Botfly::MUCClient.new(room_name,self,&block) end - + def quit @client.close @main_thread.continue end - - def to_debug_s - "BOT" - end - + + def to_debug_s; "BOT"; end + private def register_for_callbacks Botfly.logger.info(" BOT: Registering for callbacks with client") # @client.add_update_callback {|presence| respond_to(:update, :presence => presence) } -# @client.add_subscription_request_callback {|item, pres| } # requires Roster helper - @client.add_message_callback do |message| + @client.add_subscription_request_callback do |item, pres| # requires Roster helper + Botfly.logger.debug(" CB: Got Message") + respond_to(:subscription_request, :roster_item => item, :presence => pres) + end + + @client.add_message_callback do |message| Botfly.logger.debug(" CB: Got Message") respond_to(:message, :message => message) end - @client.add_presence_callback do |new_presence,old_presence| + + @client.add_presence_callback do |new_presence,old_presence| Botfly.logger.debug(" CB: Got Presence") respond_to(:presence, :old => old_presence, :new => new_presence) end end