class AntigateRb::Client
Public Class Methods
new(options = {})
click to toggle source
# File lib/antigate_rb/client.rb, line 8 def initialize(options = {}) @retries_count = options.delete(:retries_count) || 10 @sleep = options.delete(:sleep) || 5 @options = AntigateRb.configuration.options.merge(options) end
Public Instance Methods
check()
click to toggle source
# File lib/antigate_rb/client.rb, line 26 def check return if @captcha_id.blank? begin get_status rescue CaptchaNotReady => e attempt ||= @retries_count raise e if (attempt -= 1) < 0 sleep @sleep retry end end
decode(image)
click to toggle source
# File lib/antigate_rb/client.rb, line 14 def decode(image) case request_image(image) when /OK\|(.+)/ @captcha_id = $1 check when /^ERROR_(.+)/ raise error_class($1) else raise UnknownResponse end end
get_balance()
click to toggle source
# File lib/antigate_rb/client.rb, line 43 def get_balance request_balance end
get_stats(date = Date.today)
click to toggle source
# File lib/antigate_rb/client.rb, line 47 def get_stats(date = Date.today) request_stats date end
report_bad()
click to toggle source
# File lib/antigate_rb/client.rb, line 38 def report_bad return if @captcha_id.blank? request_report_bad end
Private Instance Methods
error_class(string)
click to toggle source
# File lib/antigate_rb/client.rb, line 106 def error_class(string) "AntigateRb::#{string.downcase.classify}".constantize rescue NameError UnknownErrorResponse end
get_status()
click to toggle source
# File lib/antigate_rb/client.rb, line 53 def get_status case request_status when /^OK\|(.+)/ $1 when 'CAPCHA_NOT_READY' raise CaptchaNotReady when /^ERROR_(.+)/ raise error_class($1) else raise UnknownResponse end end
request(url, params)
click to toggle source
# File lib/antigate_rb/client.rb, line 98 def request(url, params) request = HTTPI::Request.new.tap do |request| request.url = url request.body = params end HTTPI.post(request).body end
request_balance()
click to toggle source
# File lib/antigate_rb/client.rb, line 85 def request_balance request 'http://antigate.com/res.php', key: AntigateRb.configuration.key, action: 'getbalance' end
request_image(image)
click to toggle source
# File lib/antigate_rb/client.rb, line 73 def request_image(image) request 'http://antigate.com/in.php', @options.merge(method: 'base64', body: Base64.encode64(image)) end
request_report_bad()
click to toggle source
# File lib/antigate_rb/client.rb, line 78 def request_report_bad request 'http://antigate.com/res.php', key: AntigateRb.configuration.key, action: 'reportbad', id: @captcha_id end
request_stats(date)
click to toggle source
# File lib/antigate_rb/client.rb, line 91 def request_stats(date) request 'http://antigate.com/res.php', key: AntigateRb.configuration.key, action: 'getstats', date: date.strftime('%Y-%m-%d') end
request_status()
click to toggle source
# File lib/antigate_rb/client.rb, line 66 def request_status request 'http://antigate.com/res.php', key: AntigateRb.configuration.key, action: 'get', id: @captcha_id end