two_captcha 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea861217de7f6655a791908c0a8e8935b36d22fce3eb916e16ac0a8c7ccccef7
4
- data.tar.gz: 9e87f7308dd3127a986a9204abd8a640033f19b0f0d87df53edd5e932bfaad90
3
+ metadata.gz: 85dec926f62d43f6629fea1232276b55950cac27c107e64d064f6374f571c6b6
4
+ data.tar.gz: 9e962be8d8d1dd76f6cfe7644003a042b3bcccf216aa5d820fd057c95d930c22
5
5
  SHA512:
6
- metadata.gz: 1f00da9ab5ba1fc674aeb5af1b2423a0ec345ca7ceeac33368a5254277807bf406363aea59350c11938be5f7336154d275b06141b5b58592b004bfaf83817c5f
7
- data.tar.gz: c3b9134f597e250de37caf4d6ec24afe70f6a6a507f7f578e24686d934db2ddcc4551c5f137eeb64c3c3bb33a1fa41dcbc00804e5430554d31ab70b081216ff2
6
+ metadata.gz: 11dc25d38866f051f13963f460c9b8d5b813d0960b4f1ce8fa3b0c589555d368021cae3994cd1e9d0e6f730940a6921fa91173a70e48a29ec25b7a3903ac814e
7
+ data.tar.gz: 762fd992e1b9fa35cfc91baf729d280d123298a46f92b75a6dc03e3b42294184d3a4c84cfc449b5d6d44615f54434c5a1d9c0b565ce1ab7d310cf907996b0d50
data/README.md CHANGED
@@ -199,6 +199,30 @@ following:
199
199
  "1JJHJ_VuuHAqJKxcaasbTsqw-L1Sm4gD57PTeaEr9-MaETG1vfu2H5zlcwkjsRoZoHxx6V9yUDw8Ig-hYD8kakmSnnjNQd50w_Y_tI3aDLp-s_7ZmhH6pcaoWWsid5hdtMXyvrP9DscDuCLBf7etLle8caPWSaYCpAq9DOTtj5NpSg6-OeCJdGdkjsakFUMeGeqmje87wSajcjmdjl_w4XZBY2zy8fUH6XoAGZ6AeCTulIljBQDObQynKDd-rutPvKNxZasDk-LbhTfw508g1lu9io6jnvm3kbAdnkfZ0x0PkGiUMHU7hnuoW6bXo2Yn_Zt5tDWL7N7wFtY6B0k7cTy73f8er508zReOuoyz2NqL8smDCmcJu05ajkPGt20qzpURMwHaw"
200
200
  ```
201
201
 
202
+ ## hCaptcha
203
+
204
+ This method allows you to solve hCaptcha.
205
+
206
+ There are two methods available:
207
+
208
+ - `decode_hcaptcha`: solves hCaptcha CAPTCHAs. It doesn't raise exceptions.
209
+ - `decode_hcaptcha!`: solves hCaptcha CAPTCHAs. It may raise an error if something goes wrong.
210
+
211
+ **Send the `sitekey` and `pageurl` parameters**
212
+
213
+ This method requires no browser emulation. You can send two parameters that
214
+ identify the website in which the CAPTCHA is found.
215
+
216
+ ```ruby
217
+ options = {
218
+ sitekey: 'xyz',
219
+ pageurl: 'http://example.com/example=1'
220
+ }
221
+
222
+ captcha = client.decode_hcaptcha!(options)
223
+ captcha.text # Solution of the captcha
224
+ ```
225
+
202
226
  ## Notes
203
227
 
204
228
  #### Thread-safety
@@ -171,6 +171,50 @@ module TwoCaptcha
171
171
  decoded_captcha
172
172
  end
173
173
 
174
+ #
175
+ # Solve hCaptcha.
176
+ #
177
+ # @param [Hash] options Options hash. Check docs for the method decode_hcaptcha!.
178
+ #
179
+ # @return [TwoCaptcha::Captcha] The solution of the given captcha.
180
+ #
181
+ def decode_hcaptcha(options = {})
182
+ decode_hcaptcha!(options)
183
+ rescue TwoCaptcha::Error => ex
184
+ TwoCaptcha::Captcha.new
185
+ end
186
+
187
+ #
188
+ # Solve hCaptcha.
189
+ #
190
+ # @param [Hash] options Options hash.
191
+ # @option options [String] :sitekey The key of the site in which hCaptcha is installed.
192
+ # @option options [String] :pageurl The URL of the page where the recaptcha is encountered.
193
+ #
194
+ # @return [TwoCaptcha::Captcha] The solution of the given captcha.
195
+ #
196
+ def decode_hcaptcha!(options = {})
197
+ started_at = Time.now
198
+
199
+ fail(TwoCaptcha::GoogleKey) if options[:sitekey].empty?
200
+
201
+ upload_options = {
202
+ method: 'hcaptcha',
203
+ sitekey: options[:sitekey],
204
+ pageurl: options[:pageurl]
205
+ }
206
+ decoded_captcha = upload(upload_options)
207
+
208
+ # pool untill the answer is ready
209
+ while decoded_captcha.text.to_s.empty?
210
+ sleep([polling, 10].max) # sleep at least 10 seconds
211
+ decoded_captcha = captcha(decoded_captcha.id)
212
+ fail TwoCaptcha::Timeout if (Time.now - started_at) > timeout
213
+ end
214
+
215
+ decoded_captcha
216
+ end
217
+
174
218
  # Upload a captcha to 2Captcha.
175
219
  #
176
220
  # This method will not return the solution. It helps on separating concerns.
@@ -26,6 +26,12 @@ module TwoCaptcha
26
26
  end
27
27
  end
28
28
 
29
+ class SiteKey < Error
30
+ def initialize
31
+ super('Missing sitekey parameter')
32
+ end
33
+ end
34
+
29
35
  class WrongUserKey < Error
30
36
  def initialize
31
37
  super('Wrong “key” parameter format, it should contain 32 symbols')
@@ -1,4 +1,4 @@
1
1
  module TwoCaptcha
2
- VERSION = '1.5.0'
2
+ VERSION = '1.6.0'
3
3
  USER_AGENT = "TwoCaptcha/Ruby v#{VERSION}"
4
4
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: two_captcha
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafael Barbolo
8
8
  - Rafael Ivan Garcia
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-07-31 00:00:00.000000000 Z
12
+ date: 2021-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -88,7 +88,7 @@ homepage: https://github.com/infosimples/two_captcha
88
88
  licenses:
89
89
  - MIT
90
90
  metadata: {}
91
- post_install_message:
91
+ post_install_message:
92
92
  rdoc_options: []
93
93
  require_paths:
94
94
  - lib
@@ -103,8 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubygems_version: 3.0.3
107
- signing_key:
106
+ rubygems_version: 3.0.6
107
+ signing_key:
108
108
  specification_version: 4
109
109
  summary: Ruby API for 2Captcha (Captcha Solver as a Service)
110
110
  test_files: