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