#!/usr/bin/ruby
require 'rubygems'
require 'hpricot'
require 'open-uri'
require './Proxies/Proxies'
require 'timeout'
#TimeoutX.replace_timeout
#proxy = Proxies.getRandomProxy
proxies = YAML.load_file("./Proxies/proxies.yml")
proxies.each_with_index do |proxy, index|
puts "Testing proxy ##{index} at #{proxy}"
begin
#set a timeout. Proxies which can't pass the timeout will be deleted from the list.
Timeout.timeout(8){
begin
#check whether the proxy works with Hpricot (actually, open-uri)
doc = Hpricot(open('http://tinyurl.com/api-create.php?url=%22http://www.google.com%22', :proxy=>proxy))
if (doc.to_s != "http://tinyurl.com/57dcb")
#this proxy is redirecting me. get rid of it.
raise Timeout::Error
else
puts "Proxy #{index} (#{proxy}) is OK."
end
rescue
puts proxy + " timed out."
proxies.delete_at(index)
next
end
}
rescue Timeout::Error
puts proxy + " timed out."
proxies.delete_at(index)
end
end
File.open("./Proxies/proxies.yml", "w") do |file|
file << proxies.to_yaml
end