Guest User

Untitled

a guest
Feb 19th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. #!/usr/local/bin/ruby
  2. require 'net/https'
  3. require 'open-uri'
  4. require 'cgi'
  5. require 'yaml'
  6.  
  7. svnlook = "/usr/local/bin/svnlook"
  8.  
  9. class Marshmallow
  10. def login(options)
  11. options = { :method => :url }.merge(options)
  12. @debug = true if options[:debug]
  13.  
  14. @req = Net::HTTP::new("#{options[:domain]}.campfirenow.com", (options[:ssl] ? 443 : 80))
  15. @req.use_ssl = options[:ssl] || false
  16. headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
  17.  
  18. case options[:method]
  19. when :url
  20. res = @req.post("/#{options[:url]}", "name=#{options[:username]}", headers)
  21. @room_id = res['location'].scan(/room\/(\d+)/).to_s
  22. puts res.body if @debug
  23. when :login
  24. username = "#{options[:username]}"
  25. params = "email_address=#{CGI.escape(username)}&password=#{CGI.escape(options[:password])}"
  26. puts params if @debug
  27. res = @req.post("/login/", params, headers)
  28. @room_id = options[:room]
  29. puts "Logging into room #{@room_id}" if options[:debug]
  30. puts res.body if @debug
  31. end
  32.  
  33. @headers = { 'Cookie' => res.response['set-cookie'] }
  34. res2 = @req.get(res['location'], @headers)
  35. puts res2.body if @debug
  36.  
  37. # refresh our headers
  38. @headers = { 'Cookie' => res.response['set-cookie'] }
  39. @req.get("/room/#{@room_id}/") # join the room if necessary
  40. return @headers
  41. end
  42.  
  43. def say(message, paste=false)
  44. puts "Posting #{message}" if @debug
  45. res = @req.post("/room/#{@room_id}/speak", "#{'paste=true&' if paste}message=#{CGI.escape(message)}", @headers)
  46. puts res.body if @debug
  47. end
  48.  
  49. end
Add Comment
Please, Sign In to add comment