Sha256: 5864133dd0f37946c474e71034ddec436f178b2c35cece396a7f130a80453385

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

#require 'dotenv'
#Dotenv.load

require 'net/http'
require 'json'
require 'bing-search'

BingSearch.account_key = ENV['BING_SEARCH_KEY']
BingSearch.web_only = true

class Status

	def self.isitdown(url) # e.g. google.com
		uri = URI('http://downforeveryoneorjustme.com/' + url)
		output = Net::HTTP.get(uri)
		if output =~ /It's just you/i
			if url == 'encrypted.google.com'
				return "google.com is up :ok_hand:"
			else
				return "#{url} is up :ok_hand:"
			end
		else
			return "#{url} is down :warning:"
		end
	end

	def self.find_url(word)
		uri = URI('http://api.duckduckgo.com/?q=!' + word + '&format=json&t=downforeveryone-bot')
		output = Net::HTTP.get(uri)
		hash = JSON.parse(output)
		if hash['Redirect'] != ""
			return /https?:\/\/([\w{2,}\.]+)/.match(hash['Redirect'])[1]
		else
			return Status.search_url(word)
		end
	end

	def self.search_url(word)
		results = BingSearch.web(word, {:limit => 1})
		if results[0] and results[0].display_url
			return /(?:https?:\/\/)?([\w{2,}\.]+)/.match(results[0].display_url)[1]
		end
	end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
slack-bot-manager-0.1.0pre5 examples/downforeveryone-bot/lib/status.rb
slack-bot-manager-0.1.0pre4 examples/downforeveryone-bot/lib/status.rb
slack-bot-manager-0.1.0pre3 examples/downforeveryone-bot/lib/status.rb