Advertisement
Guest User

Untitled

a guest
Jun 11th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.66 KB | None | 0 0
  1. #!usr/bin/env ruby
  2.  
  3. require 'rubygems'
  4. require 'net/https'
  5. require 'nokogiri'
  6. require 'date'
  7. require 'active_support/inflector'
  8. require 'active_record'
  9. require 'activerecord-sqlserver-adapter'
  10. require 'net/smtp'
  11. require 'tzinfo'
  12. require '/home/ubuntu/attachment.rb'
  13.  
  14. #API calls to retrieve data (production sensors).
  15. uri = URI('https://ibex.ashprojects.com/api/v1/devices/D8-80-39-D7-88-C9/access/api/data/live')
  16. urib = URI('https://ibex.ashprojects.com/api/v1/devices/D8-80-39-D7-2C-53/access/api/data/live')
  17.  
  18. a = Array.new(6)
  19. b = Array.new(6)
  20. rows = []
  21. xml = String.new
  22. xmlb = String.new
  23. time = Time.now
  24. sensortime = String.new
  25. counter = 0
  26.  
  27. while 0 == 0
  28.   a.delete_at(0)
  29.   b.delete_at(0)
  30. puts Time.now
  31. puts "Downloading XML"
  32. Net::HTTP.start(uri.host, uri.port,
  33.     :use_ssl => uri.scheme == 'https',
  34.     :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
  35.       request = Net::HTTP::Get.new uri.request_uri
  36.       request.basic_auth 'admin', '5tranger!nTheAlp5!'
  37.  
  38.       response = http.request request
  39.       puts response
  40.       xml << response.body.to_s
  41.       puts "XML Downloaded"
  42. end
  43. Net::HTTP.start(urib.host, urib.port,
  44.     :use_ssl => urib.scheme == 'https',
  45.     :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
  46.       request = Net::HTTP::Get.new urib.request_uri
  47.       request.basic_auth 'admin', '5tranger!nTheAlp5!'
  48.  
  49.       response = http.request request
  50.       puts response
  51.       xmlb << response.body.to_s
  52.       puts "XML Downloaded"
  53. end
  54.  
  55. doc = Nokogiri::XML(xml)
  56. docb = Nokogiri::XML(xmlb)
  57. doc.css("response content elements element").each do |element|
  58.   case element.css("data-type").text
  59.   when 'ZONE'
  60.   h = {}
  61.   h['ZONE_NAME'] = element.css("element-name").text
  62.   h['POLL_TIME'] = element.css("live-data time").text
  63.   h['DATA_TYPE'] = element.css("data-type").text
  64.   h['FILL_LEVEL'] =element.css("live-data values value[label = 'count']").text.to_i
  65.   a << h['FILL_LEVEL']
  66.   rows << h
  67.   when 'LINE'
  68.   puts "Line Count not Recorded"
  69.   end
  70. end
  71.  
  72. docb.css("response content elements element").each do |element|
  73.   case element.css("data-type").text
  74.   when 'ZONE'
  75.   j = {}
  76.   j['ZONE_NAME'] = element.css("element-name").text
  77.   j['POLL_TIME'] = element.css("live-data time").text
  78.   j['FILL_LEVEL'] =element.css("live-data values value[label = 'count']").text.to_i
  79.   b << j['FILL_LEVEL']
  80.   rows << j
  81. when 'LINE'
  82.   puts "Line Count not Recorded"
  83.   end
  84. end
  85.  
  86.   if a == [1,1,1,1,1,1] && counter == 0 && b == [1,1,1,1,1,1]
  87.     puts "COMPLIANCE ERROR"
  88.     sendattachment
  89.       counter = 1
  90.   end
  91.   if a != [1,1,1,1,1,1]
  92.     counter = 0
  93. end
  94.  
  95. puts a.inspect , b.inspect
  96. xml = ''
  97. xmlb = ''
  98. puts "XML's CLEARED"
  99. sleep 5
  100. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement