class Lita::Handlers::Uptimerobot
Public Class Methods
status(key)
click to toggle source
# File lib/lita/handlers/uptimerobot.rb, line 16 def self.status(key) @status[key] end
Public Instance Methods
uptime(msg)
click to toggle source
# File lib/lita/handlers/uptimerobot.rb, line 26 def uptime(msg) what = msg.matches.flatten.first span = msg.matches.flatten[1] r = '' response = http.get("https://api.uptimerobot.com/getMonitors") do |req| req.params['apiKey'] = config.api_key req.params['format'] = "json" req.params['noJsonCallback'] = "1" req.params['search'] = what unless what.nil? or what == 'all' req.params['customUptimeRatio'] = span unless span.nil? end result = JSON.parse(response.body) max_ratio_width = "uptime %".length max_url_width = 0 max_status_width = self.class.status("1").length result['monitors']['monitor'].each do |monitor| max_url_width = monitor['url'].length if monitor['url'].length > max_url_width r << "#{monitor['alltimeuptimeratio'].center(max_ratio_width)}\t" r << "#{self.class.status(monitor['status']).center(max_status_width)}\t" r << "#{monitor['url']}\n" end header = '' header << "Uptime %\t" << "Status".center(max_status_width) << "\t" << "URL".center(max_url_width) << "\n" msg.reply header << r end