Developed by Infosimples, a brazilian company that
offers data extraction solutions
and Ruby on Rails development.
ZeroCaptcha
ZeroCaptcha is a Ruby API for an enterprise captcha solving service developed by
Infosimples that is 100% powered by artificial intelligence software.
Installation
Add this line to your application's Gemfile:
gem 'zero_captcha', '~> 1.0.0'
And then execute:
$ bundle
Or install it yourself as:
$ gem install zero_captcha
Usage
- Create a client
client = ZeroCaptcha.new('mytoken')
- Solve a captcha
There are two methods available: decode and decode!
* decode doesn't raise exceptions.
* decode! may raise a ZeroCaptcha::Error if something goes wrong.
If the solution is not available, an empty captcha object will be returned.
captcha = client.decode(url: 'http://bit.ly/1xXZcKo', solver: 'captcha-type-1')
captcha.text
captcha.id
captcha.correct?
captcha.duration
You can also specify path, file, raw and raw64 when decoding an image.
client.decode(path: 'path/to/my/captcha/file', solver: 'captcha-type-1')
client.decode(file: File.open('path/to/my/captcha/file', 'rb'), solver: 'captcha-type-1')
client.decode(raw: File.open('path/to/my/captcha/file', 'rb').read, solver: 'captcha-type-1')
client.decode(raw64: Base64.encode64(File.open('path/to/my/captcha/file', 'rb').read), solver: 'captcha-type-1')
Internally, the gem will always convert the image to raw64 (binary base64 encoded).
- Report incorrectly solved captcha for refund
captcha = client.report_incorrect(130920620)
Warning: do not abuse on this method, otherwise you may get banned
- Report correctly solved captcha for statistics
captcha = client.report_correct(130920620)
Notes
Thread-safety
The API is thread-safe, which means it is perfectly fine to share a client
instance between multiple threads.
Ruby dependencies
ZeroCaptcha don't require specific dependencies. That saves you memory and
avoid conflicts with other gems.
Input image format
Any format you use in the decode method (url, file, path, raw, raw64) will
always be converted to a raw64, which is a binary base64 encoded string. So, if
you already have this format available on your side, there's no need to do
convertions before calling the API.
Our recomendation is to never convert your image format, unless needed. Let
the gem convert internally. It may save you resources (CPU, memory and IO).
Versioning
ZeroCaptcha gem uses Semantic Versioning.
Ruby versions
This gem has been tested with the following versions of Ruby:
- MRI 2.2.2
- MRI 2.2.0
- MRI 2.1.5
- MRI 2.0.0
- MRI 1.9.3
Maintainers
Contributing
- Fork it ( https://github.com/infosimples/zero_captcha/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Run/add tests (RSpec)
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- Yay. Thanks for contributing :)
All contributors:
https://github.com/infosimples/zero_captcha/graphs/contributors
License
MIT License. Copyright (C) 2011-2015 Infosimples. https://infosimples.com/