class PokemonGoStatus::Status

Public Instance Methods

get_server_response_average(url) click to toggle source
# File lib/melonsmasher/pokemon-go-status.rb, line 46
def get_server_response_average url
  times = []
  total_time = 0

  (0..9).each do |i|
    start_time = Time.now
    begin
      Net::HTTP.get_response(URI(url))
    rescue
      next
    end
    response_time = (Time.now - start_time) * 1000
    times[i] = response_time.round
    total_time = total_time + response_time.round
  end

  begin
    return total_time / times.count
  rescue
    return -1
  end

end
get_server_status(url = 'https://pgorelease.nianticlabs.com/plfe') click to toggle source
# File lib/melonsmasher/pokemon-go-status.rb, line 70
def get_server_status url = 'https://pgorelease.nianticlabs.com/plfe'
  self.interpret_response_average self.get_server_response_average url
end
interpret_response_average(avg_ms) click to toggle source
# File lib/melonsmasher/pokemon-go-status.rb, line 7
def interpret_response_average avg_ms
  if avg_ms === -1
    {
        :exit_code => 3,
        :description => 'Error! Probably not a good sign, but try again.',
        :avg_ms => avg_ms,
        :available => false
    }
  elsif avg_ms < 800
    {
        :exit_code => 0,
        :description => 'All good! Go catch\'em all!',
        :avg_ms => avg_ms,
        :available => true
    }
  elsif avg_ms >= 800 && avg_ms < 3000
    {
        :exit_code => 1,
        :description => 'Servers are slow. Your mileage may vary.',
        :avg_ms => avg_ms,
        :available => true
    }
  elsif avg_ms > 3000
    {
        :exit_code => 2,
        :description => 'Servers don\'t seem to be up.',
        :avg_ms => avg_ms,
        :available => false
    }
  else
    {
        :exit_code => 3,
        :description => 'Error! Probably not a good sign, but try again.',
        :avg_ms => avg_ms,
        :available => false
    }
  end
end