Guest User

Untitled

a guest
Jul 30th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. require "rubygems"
  2. #require "ruby-debug"
  3. require "purple_ruby"
  4. require "#{MSN_ROOT}/../../jane"
  5. require "mq"
  6.  
  7. Signal.trap('INT') { AMQP.stop{ EM.stop }; exit }
  8. Signal.trap('TERM'){ AMQP.stop{ EM.stop }; exit }
  9.  
  10. PurpleRuby.init :debug => false#, :user_dir => MSN_ROOT #true #use 'true' if you want to see the debug messages
  11.  
  12. account = Purple.login(config[:protocol], config[:username], config[:password])
  13.  
  14. #handle incoming im messages
  15. Purple.watch_incoming_im do |acc, sender, msg|
  16. sender = sender[0...sender.index('/')] if sender.index('/') #discard anything after '/'
  17. puts "recv: #{acc.username}, #{sender}, #{msg}"
  18. account.send_im sender, reply
  19. end
  20.  
  21. AMQP.start(:host => 'localhost', :vhost => '/jane', :user => 'mapper', :pass => 'testing') do
  22.  
  23.  
  24. # Stopping after the second item was acked will keep the 3rd item in the queue
  25. MQ.queue('jane-purple').subscribe(:ack => true) do |h,m|
  26. p "Queue!"
  27. p h
  28. p m
  29. # if (i+=1) == 3
  30. # puts 'Shutting down...'
  31. # AMQP.stop{ EM.stop }
  32. # end
  33.  
  34. if AMQP.closing?
  35. puts "#{m} (ignored, redelivered later)"
  36. else
  37. puts m
  38. h.ack
  39. end
  40. end
  41.  
  42.  
  43. # EM.defer lambda{
  44. # EM.run_block {
  45. # # Thread.new {
  46. # Purple.main_loop_run
  47. # }
  48. end
Add Comment
Please, Sign In to add comment