Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "rubygems"
- #require "ruby-debug"
- require "purple_ruby"
- require "#{MSN_ROOT}/../../jane"
- require "mq"
- Signal.trap('INT') { AMQP.stop{ EM.stop }; exit }
- Signal.trap('TERM'){ AMQP.stop{ EM.stop }; exit }
- PurpleRuby.init :debug => false#, :user_dir => MSN_ROOT #true #use 'true' if you want to see the debug messages
- account = Purple.login(config[:protocol], config[:username], config[:password])
- #handle incoming im messages
- Purple.watch_incoming_im do |acc, sender, msg|
- sender = sender[0...sender.index('/')] if sender.index('/') #discard anything after '/'
- puts "recv: #{acc.username}, #{sender}, #{msg}"
- account.send_im sender, reply
- end
- AMQP.start(:host => 'localhost', :vhost => '/jane', :user => 'mapper', :pass => 'testing') do
- # Stopping after the second item was acked will keep the 3rd item in the queue
- MQ.queue('jane-purple').subscribe(:ack => true) do |h,m|
- p "Queue!"
- p h
- p m
- # if (i+=1) == 3
- # puts 'Shutting down...'
- # AMQP.stop{ EM.stop }
- # end
- if AMQP.closing?
- puts "#{m} (ignored, redelivered later)"
- else
- puts m
- h.ack
- end
- end
- # EM.defer lambda{
- # EM.run_block {
- # # Thread.new {
- # Purple.main_loop_run
- # }
- end
Add Comment
Please, Sign In to add comment