Advertisement
Guest User

Untitled

a guest
Feb 16th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. require 'net/http'
  2.  
  3. @cameraDelay = 1 # Needed for image sync.
  4. @fetchNewImageEvery = '3s'
  5.  
  6. @camera1Host = "192.168.0.20" ## CHANGE
  7. @camera1Port = "80" ## CHANGE
  8. @camera1Username = 'admin' ## CHANGE
  9. @camera1Password ='*****'
  10. @camera1URL = "/dms?nowprofileid=1&"
  11. @newFile1 = "assets/images/cameras/snapshot1_new.jpg"
  12. @oldFile1 = "assets/images/cameras/snapshot1_old.jpg"
  13.  
  14.  
  15. def fetch_image(host,old_file,new_file, cam_user, cam_pass, cam_url)
  16. `rm #{old_file}`
  17. `mv #{new_file} #{old_file}`
  18. Net::HTTP.start(host) do |http|
  19. req = Net::HTTP::Get.new(cam_url)
  20. if cam_user != "None" ## if username for any particular camera is set to 'None' then assume auth not required.
  21. req.basic_auth cam_user, cam_pass
  22. end
  23. response = http.request(req)
  24. open(new_file, "wb") do |file|
  25. file.write(response.body)
  26. end
  27.  
  28. end
  29. new_file
  30. end
  31.  
  32. def make_web_friendly(file)
  33. "/" + File.basename(File.dirname(file)) + "/" + File.basename(file)
  34. end
  35.  
  36. SCHEDULER.every @fetchNewImageEvery do
  37. STDOUT.flush
  38. new_file1 = fetch_image(@camera1Host,@oldFile1,@newFile1,@camera1Username,@camera1Password,@camera1URL)
  39.  
  40. if not File.exists?(@newFile1)
  41. warn "Failed to Get Camera Image"
  42. end
  43. send_event('camera1', image: make_web_friendly(@oldFile1))
  44. sleep(@cameraDelay)
  45. send_event('camera1', image: make_web_friendly(new_file1))
  46.  
  47. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement