Guest User

Untitled

a guest
May 20th, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. require "rubygems"
  2. require "xmpp4r"
  3. require "stringio"
  4.  
  5. requests = StringIO.new
  6. responses = StringIO.new
  7.  
  8. def new_cabulous_register(username=nil, password=nil)
  9. iq = Jabber::Iq.new(:set)
  10. iq.attributes['id'] = "register_guest"
  11. query = Jabber::IqQuery.new
  12. query.add_namespace('jabber:iq:register:cabulous')
  13. query.add(REXML::Element.new('username').add_text(username)) if username
  14. query.add(REXML::Element.new('password').add_text(password)) if password
  15. query.add(REXML::Element.new('device').add_text("iphone"))
  16. iq.add(query)
  17. iq
  18. end
  19.  
  20. def new_element(node_name)
  21. REXML::Element.new(node_name)
  22. end
  23.  
  24. def get_nearby_cabbies()
  25. iq = Jabber::Iq.new(:get)
  26. iq.attributes['id'] = "get_nearby_cabbies"
  27. query = Jabber::IqQuery.new
  28. query.add_namespace('jabber:iq:public:presence:get')
  29. options_element = new_element('options')
  30. options_element.attributes['hailing_nearest'] = 'false'
  31. options_element.attributes['including_outside'] = 'false'
  32. query.add(options_element)
  33. query.add(new_element('upper_left')).add_text('37.729045,-122.470779')
  34. query.add(new_element('lower_right')).add_text('37.841919,-122.360916')
  35. iq.add(query)
  36. iq
  37. end
  38.  
  39. def cabulous_identify_iq(username)
  40. puts "cabulous_identify_iq(#{username})"
  41. iq = Jabber::Iq.new(:get)
  42. iq.attributes['id'] = "cabulous_identify"
  43. query = Jabber::IqQuery.new
  44. query.add_namespace('jabber:iq:cabulous:identify')
  45. query.add(new_element('login')).add_text(username)
  46. iq.add(query)
  47. iq
  48. end
  49.  
  50. client = Jabber::Client.new("foo@localhost")
  51.  
  52. client.add_stanza_callback do |res|
  53. if res.attributes['id'] == 'register_guest'
  54. puts "Found register_guest response!"
  55. puts
  56. puts res
  57. puts
  58. username = res.get_elements("//username").first.texts.first
  59. password = res.get_elements("//password").first.texts.first
  60. puts "Auth'ing with #{username}/#{password}"
  61.  
  62. auth_iq = cabulous_identify_iq(username)
  63. requests.puts auth_iq
  64.  
  65. client.send(auth_iq)
  66. #
  67. # elsif res.attributes['id'] == 'cabulous_identify'
  68. # # gnc = get_nearby_cabbies
  69. # # requests.puts gnc
  70. # # client.send(gnc)
  71. end
  72.  
  73. responses.puts res # unless res.get_elements("stream").size == 0
  74. end
  75.  
  76. client.connect("75.101.142.197")
  77.  
  78. # Login
  79. cr = new_cabulous_register("guest", "random")
  80. requests.puts cr
  81. client.send(cr)
  82.  
  83.  
  84.  
  85. sleep 5
  86.  
  87. puts "Requests:"
  88. puts requests.string
  89. puts
  90. puts "Responses:"
  91. puts responses.string
  92.  
  93.  
  94. # U: 12669436266594541
  95. # P: y747
  96.  
  97.  
  98.  
  99.  
  100. CabulousSession.as_guest do |session|
  101. session.nearby_cabbies do |nearby_cabbies|
  102. nearby_cabbies.each do |cabbie|
  103. puts cabbie
  104. end
  105. end
  106. end
Add Comment
Please, Sign In to add comment