diff --git a/lib/antigate.rb b/lib/antigate.rb index 52220c2..08ecb49 100644 --- a/lib/antigate.rb +++ b/lib/antigate.rb @@ -16,6 +16,7 @@ def self.balance(key) class Wrapper attr_accessor :phrase, :regsense, :numeric, :calc, :min_len, :max_len, :domain + attr_reader :http_response def initialize(key) @key = key @@ -29,10 +30,10 @@ def initialize(key) @domain = "antigate.com" end - def recognize(url, ext) + def recognize(resource, ext) added = nil loop do - added = add(url, ext) + added = add(resource, ext) next if added.nil? if added.include? 'ERROR_NO_SLOT_AVAILABLE' sleep(1) @@ -61,13 +62,17 @@ def recognize(url, ext) end end - def add(url, ext) - uri = URI.parse(url) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = (uri.port == 443) - request = Net::HTTP::Get.new(uri.request_uri) - response = http.request(request) - captcha = response.body + def add(resource, ext) + begin + uri = URI.parse(resource) + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = (uri.port == 443) + request = Net::HTTP::Get.new(uri.request_uri) + @http_response = http.request(request) + captcha = @http_response.body + rescue URI::InvalidURIError + captcha = resource + end if captcha params = { 'method' => 'base64',