Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!usr/bin/env ruby
- require 'rubygems'
- require 'net/https'
- require 'nokogiri'
- require 'date'
- require 'active_support/inflector'
- require 'active_record'
- require 'activerecord-sqlserver-adapter'
- require 'net/smtp'
- require 'tzinfo'
- require '/home/ubuntu/attachment.rb'
- #API calls to retrieve data (production sensors).
- uri = URI('https://ibex.ashprojects.com/api/v1/devices/D8-80-39-D7-88-C9/access/api/data/live')
- urib = URI('https://ibex.ashprojects.com/api/v1/devices/D8-80-39-D7-2C-53/access/api/data/live')
- a = Array.new(6)
- b = Array.new(6)
- rows = []
- xml = String.new
- xmlb = String.new
- time = Time.now
- sensortime = String.new
- counter = 0
- while 0 == 0
- a.delete_at(0)
- b.delete_at(0)
- puts Time.now
- puts "Downloading XML"
- Net::HTTP.start(uri.host, uri.port,
- :use_ssl => uri.scheme == 'https',
- :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
- request = Net::HTTP::Get.new uri.request_uri
- request.basic_auth 'admin', '5tranger!nTheAlp5!'
- response = http.request request
- puts response
- xml << response.body.to_s
- puts "XML Downloaded"
- end
- Net::HTTP.start(urib.host, urib.port,
- :use_ssl => urib.scheme == 'https',
- :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
- request = Net::HTTP::Get.new urib.request_uri
- request.basic_auth 'admin', '5tranger!nTheAlp5!'
- response = http.request request
- puts response
- xmlb << response.body.to_s
- puts "XML Downloaded"
- end
- doc = Nokogiri::XML(xml)
- docb = Nokogiri::XML(xmlb)
- doc.css("response content elements element").each do |element|
- case element.css("data-type").text
- when 'ZONE'
- h = {}
- h['ZONE_NAME'] = element.css("element-name").text
- h['POLL_TIME'] = element.css("live-data time").text
- h['DATA_TYPE'] = element.css("data-type").text
- h['FILL_LEVEL'] =element.css("live-data values value[label = 'count']").text.to_i
- a << h['FILL_LEVEL']
- rows << h
- when 'LINE'
- puts "Line Count not Recorded"
- end
- end
- docb.css("response content elements element").each do |element|
- case element.css("data-type").text
- when 'ZONE'
- j = {}
- j['ZONE_NAME'] = element.css("element-name").text
- j['POLL_TIME'] = element.css("live-data time").text
- j['FILL_LEVEL'] =element.css("live-data values value[label = 'count']").text.to_i
- b << j['FILL_LEVEL']
- rows << j
- when 'LINE'
- puts "Line Count not Recorded"
- end
- end
- if a == [1,1,1,1,1,1] && counter == 0 && b == [1,1,1,1,1,1]
- puts "COMPLIANCE ERROR"
- sendattachment
- counter = 1
- end
- if a != [1,1,1,1,1,1]
- counter = 0
- end
- puts a.inspect , b.inspect
- xml = ''
- xmlb = ''
- puts "XML's CLEARED"
- sleep 5
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement