lib/botfly/muc_client.rb in botfly-0.3.1 vs lib/botfly/muc_client.rb in botfly-0.3.2
- old
+ new
@@ -1,10 +1,10 @@
require 'xmpp4r/muc'
module Botfly
class MUCClient < CommonBlockAcceptor
- attr_reader :bot, :muc
+ attr_reader :bot, :muc, :domain, :resource
def room; @block_state; end
def initialize(room, bot, &block)
super
@@ -24,15 +24,15 @@
@resource = resource
execute(&block) if block_given?
return self
end
- def leave_room; raise "Implement Me!"; end
+ def leave; @muc.exit; end
- def respond_to(callback_type, params)
- if (params[:nick] != @resource && Time.now > @connected_at_time + 3)#seconds # Don't run callbacks on the slew of launch messages (at least until I figure out a better way to differentiate them)
+ def respond_to(callback_type, params={})
+ if (params[:nick] != @resource ) # don't respond to self
Botfly.logger.info("MUC: Responding to callback of type: #{callback_type} with time of #{params[:time]}")
@responders[callback_type].each {|r| r.callback_with params} if @responders[callback_type]
end
end
@@ -43,12 +43,11 @@
def connect
Botfly.logger.info("MUC: Connecting...")
@muc = Jabber::MUC::SimpleMUCClient.new(@bot.client)
register_for_callbacks
@jid = Jabber::JID.new("#{@room}@#{@domain}/#{@resource}")
- @connected_at_time = Time.now
- @muc.join(@jid)
+ @muc.join(@jid, nil, :history => false)
Botfly.logger.info("MUC: Done connecting")
end
def execute(&block)
Botfly.logger.info("MUC: Block deteceted, executing...")
@@ -65,6 +64,6 @@
@muc.on_room_message {|time,text| respond_to(:room_message, :time => time, :text => text)}
@muc.on_self_leave {|time| respond_to(:self_leave, :time => time) }
@muc.on_subject {|time,nick,subject| respond_to(:subject, :time => time, :nick => nick, :subject => subject)}
end
end
-end
\ No newline at end of file
+end