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