ruby-2captcha 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6faa77836721484cbde480e6915021cb39fb199d05ab52333240e34db98de1a8
4
- data.tar.gz: 621afa748b261f8a1f0e85fad80e95597d268358874931864abc7f670e9f994a
3
+ metadata.gz: 331e841199be9725ada41287e036cdafb5a9ca9ce1754b14b3580ac27a376053
4
+ data.tar.gz: 93c39616225f3e3ab35c021fbd8473496829797792aa80e5272d0868b1d9884f
5
5
  SHA512:
6
- metadata.gz: a53cc1fe3f45c0b7a157eaa25bf85c22298351916ae992ae851a2d32e726e45e00ac6a91c7a23b4508643abd76c29ca8c04225ef6f2a4f49f2396c84b8266127
7
- data.tar.gz: 9b738e21dd5af75ae17986a3a28f5229e1994cb6cbca67823dadb16ff766ae1ea88a425dec1281dbb8c4ac93f7fd1f670d92da093d043dacb507c51057f0f018
6
+ metadata.gz: 852b9b321840c5e27be438c34c133acd3f81e01073c047ec934266fdb3ca0a0a29ecf31d69ff826206f88d5e505900725a4f83a9071f0925cc8453d984b29d6b
7
+ data.tar.gz: bcad95da8e13e0257e599f1046d5b54c57af34df1ad1aca2924d611583d9ee168a55f447a813700353b674387dd66e9a1bfdf9260f4b04911eb5173a56c5d0e5
data/.rspec_status CHANGED
@@ -1,5 +1,7 @@
1
- example_id | status | run_time |
2
- ---------------------------------- | ------ | --------------- |
3
- ./spec/api_2captcha_spec.rb[1:1] | passed | 0.00937 seconds |
4
- ./spec/api_2captcha_spec.rb[1:2:1] | passed | 0.00111 seconds |
5
- ./spec/api_2captcha_spec.rb[1:3:1] | passed | 7.1 seconds |
1
+ example_id | status | run_time |
2
+ ---------------------------------- | ------ | --------------------- |
3
+ ./spec/api_2captcha_spec.rb[1:1] | passed | 0.04326 seconds |
4
+ ./spec/api_2captcha_spec.rb[1:2:1] | passed | 0.00121 seconds |
5
+ ./spec/api_2captcha_spec.rb[1:3:1] | passed | 3.15 seconds |
6
+ ./spec/api_2captcha_spec.rb[1:4:1] | passed | 2 minutes 0.2 seconds |
7
+ ./spec/api_2captcha_spec.rb[1:5:1] | passed | 0.26142 seconds |
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-2captcha (0.1.0)
4
+ ruby-2captcha (1.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -10,8 +10,9 @@ A Ruby client for the 2Captcha API.
10
10
  - [Solve captcha](#solve-captcha)
11
11
  - [Normal Captcha](#normal-captcha)
12
12
  - [Text](#text-captcha)
13
- - [ReCaptcha v2](#recaptcha-v2)
14
- - [ReCaptcha v3](#recaptcha-v3)
13
+ - [reCAPTCHA v2](#recaptcha-v2)
14
+ - [reCAPTCHA v3](#recaptcha-v3)
15
+ - [reCAPTCHA Enterprise](#recaptcha-enterprise)
15
16
  - [GeeTest](#geetest)
16
17
  - [hCaptcha](#hcaptcha)
17
18
  - [KeyCaptcha](#keycaptcha)
@@ -25,8 +26,9 @@ A Ruby client for the 2Captcha API.
25
26
  - [Lemin Cropped Captcha](#lemin-cropped-captcha)
26
27
  - [GeeTest V4](#geetest-v4)
27
28
  - [Audio](#audio)
29
+ - [Yandex](#yandex)
28
30
  - [Other methods](#other-methods)
29
- - [send / getResult](#send--getresult)
31
+ - [send / get_result](#send--getresult)
30
32
  - [balance](#balance)
31
33
  - [report](#report)
32
34
  - [Error handling](#error-handling)
@@ -71,11 +73,11 @@ client.api_key = "YOUR_API_KEY"
71
73
  |---|---|---|
72
74
  |soft_id|-|your software ID obtained after publishing in [2captcha sofware catalog]|
73
75
  |callback|-|URL of your web-sever that receives the captcha recognition result. The URl should be first registered in [pingback settings] of your account|
74
- |default_timeout|120|Timeout in seconds for all captcha types except ReCaptcha. Defines how long the module tries to get the answer from `res.php` API endpoint|
76
+ |default_timeout|120|Timeout in seconds for all captcha types except reCAPTCHA. Defines how long the module tries to get the answer from `res.php` API endpoint|
75
77
  |polling_interval|10|Interval in seconds between requests to `res.php` API endpoint, setting values less than 5 seconds is not recommended|
76
78
 
77
79
  > **IMPORTANT:** once `callback` is defined for `Client` instance, all methods return only the captcha ID and DO NOT poll the API to get the result. The result will be sent to the callback URL.
78
- To get the answer manually use [getResult method](#send--getresult)
80
+ To get the answer manually use [get_result method](#send--getresult)
79
81
 
80
82
  ## Solve captcha
81
83
  When you submit any image-based captcha use can provide additional options to help 2captcha workers to solve it properly.
@@ -93,7 +95,8 @@ When you submit any image-based captcha use can provide additional options to he
93
95
  | hint_image | - | an image with hint shown to workers with the captcha, translated into instructionsimg API parameter |
94
96
  | hint_text | - | hint or task text shown to workers with the captcha |
95
97
 
96
- Below you can find basic examples for every captcha type. Check out [examples directory] to find more examples with all available options.
98
+ Below you can find basic examples for every captcha type, check out the code below.
99
+
97
100
 
98
101
  ### Normal Captcha
99
102
  To bypass a normal captcha (distorted text on image) use the following method. This method also can be used to recognize any text on the image.
@@ -114,8 +117,8 @@ result = client.text({
114
117
  })
115
118
  ```
116
119
 
117
- ### ReCaptcha v2
118
- Use this method to solve ReCaptcha V2 and obtain a token to bypass the protection.
120
+ ### reCAPTCHA v2
121
+ Use this method to solve reCAPTCHA V2 and obtain a token to bypass the protection.
119
122
  ```ruby
120
123
  result = client.recaptcha_v2({
121
124
  googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -124,8 +127,8 @@ result = client.recaptcha_v2({
124
127
  })
125
128
  ```
126
129
 
127
- ### ReCaptcha v3
128
- This method provides ReCaptcha V3 solver and returns a token.
130
+ ### reCAPTCHA v3
131
+ This method provides reCAPTCHA V3 solver and returns a token.
129
132
  ```ruby
130
133
  result = client.recaptcha_v3({
131
134
  googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -136,6 +139,28 @@ result = client.recaptcha_v3({
136
139
  })
137
140
  ```
138
141
 
142
+ ### reCAPTCHA Enterprise
143
+ reCAPTCHA Enterprise can be used as reCAPTCHA V2 and reCAPTCHA V3. Below is a usage example for both versions.
144
+
145
+ ```ruby
146
+ # reCAPTCHA V2
147
+ result = client.recaptcha_v2({
148
+ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
149
+ pageurl: 'https://mysite.com/page/with/recaptcha_v2_enterprise',
150
+ enterprise: 1
151
+ })
152
+
153
+ # reCAPTCHA V3
154
+ result = client.recaptcha_v3({
155
+ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
156
+ pageurl: 'https://mysite.com/page/with/recaptcha_v3_enterprise',
157
+ version: 'v3',
158
+ score: 0.3,
159
+ action: 'verify',
160
+ enterprise: 1,
161
+ })
162
+ ```
163
+
139
164
  ### FunCaptcha
140
165
  FunCaptcha (Arkoselabs) solving method. Returns a token.
141
166
 
@@ -189,7 +214,7 @@ result = client.capy({
189
214
  ```
190
215
 
191
216
  ### Grid
192
- Grid method is originally called Old ReCaptcha V2 method. The method can be used to bypass any type of captcha where you can apply a grid on image and need to click specific grid boxes. Returns numbers of boxes.
217
+ Grid method is originally called Old reCAPTCHA V2 method. The method can be used to bypass any type of captcha where you can apply a grid on image and need to click specific grid boxes. Returns numbers of boxes.
193
218
  ```ruby
194
219
  result = client.grid({
195
220
  image: 'path/to/captcha.jpg',
@@ -288,9 +313,18 @@ result = client.audio({
288
313
  })
289
314
  ```
290
315
 
316
+ ### Yandex
317
+ Use this method to solve Yandex and obtain a token to bypass the protection.
318
+ ```ruby
319
+ result = client.yandex({
320
+ sitekey: 'Y5Lh0tiycconMJGsFd3EbbuNKSp1yaZESUOIHfeV',
321
+ url: "https://rutube.ru"
322
+ })
323
+ ```
324
+
291
325
  ## Other methods
292
326
 
293
- ### send / getResult
327
+ ### send / get_result
294
328
  These methods can be used for manual captcha submission and answer polling.
295
329
  ```ruby
296
330
 
data/README.ru.md ADDED
@@ -0,0 +1,338 @@
1
+ # Ruby 2Captcha API Client
2
+
3
+ Это самый простой способ быстро интегрировать 2Captcha в ваш код и автоматизировать решение любого типа капчи.
4
+
5
+ Ruby-клиент для API 2Captcha.
6
+
7
+ - [Установка](#installation)
8
+ - [Настройка](#configuration)
9
+ - [Опции экземпляра клиента](#client-instance-options)
10
+ - [Решение капчи](#solve-captcha)
11
+ - [Обычная капча](#normal-captcha)
12
+ - [Текстовая капча](#text-captcha)
13
+ - [ReCaptcha v2](#recaptcha-v2)
14
+ - [ReCaptcha v3](#recaptcha-v3)
15
+ - [GeeTest](#geetest)
16
+ - [hCaptcha](#hcaptcha)
17
+ - [KeyCaptcha](#keycaptcha)
18
+ - [Capy](#capy)
19
+ - [Grid](#grid)
20
+ - [Canvas](#canvas)
21
+ - [ClickCaptcha](#clickcaptcha)
22
+ - [Rotate](#rotate)
23
+ - [AmazonWAF](#amazon-waf)
24
+ - [CloudflareTurnstile](#cloudflare-turnstile)
25
+ - [Lemin Cropped Captcha](#lemin-cropped-captcha)
26
+ - [GeeTest V4](#geetest-v4)
27
+ - [Аудио](#audio)
28
+ - [Другие методы](#other-methods)
29
+ - [send / get_result](#send--getresult)
30
+ - [balance](#balance)
31
+ - [report](#report)
32
+ - [Обработка ошибок](#error-handling)
33
+
34
+ ## Установка
35
+
36
+ Автоматическая установка гема с помощью Bundler. Добавьте следующую строку в ваш Gemfile:
37
+ ```ruby
38
+ gem 'ruby-2captcha'
39
+ ```
40
+ Затем выполните следующую команду в терминале:
41
+ ```ruby
42
+ bundle install
43
+ ```
44
+
45
+ Или установите его самостоятельно, выполнив следующую команду в терминале:
46
+ ```ruby
47
+ gem install ruby-2captcha
48
+ ```
49
+
50
+ Мы также приглашаем вас ознакомиться с нашим репозиторием на [GitHub](https://github.com/2captcha/), где вы можете найти библиотеки и модули для простой интеграции с нашим API.
51
+
52
+ ## Настройка
53
+
54
+ Описание всех необходимых параметров для настройки установленного гема.
55
+
56
+ Экземпляр класса Api2Captcha можно создать следующим образом:
57
+ ```ruby
58
+ client = Api2Captcha.new("YOUR_API_KEY")
59
+ ```
60
+
61
+ У вас также есть возможность настроить некоторые параметры экземпляра Api2Captcha:
62
+
63
+ ```ruby
64
+ client.soft_id(123)
65
+ client.domain("https://rucaptcha.com/")
66
+ client.callback("https://your.site/result-receiver")
67
+ client.default_timeout(120)
68
+ client.polling_interval(10)
69
+ ```
70
+
71
+ **ВАЖНО**: после определения обратного вызова для экземпляра , все методы возвращают только идентификатор капчи и НЕ запрашивают результат у API. Результат будет отправлен на URL обратного вызова. Чтобы получить ответ вручную, используйте метод get_result.
72
+
73
+ ## Решение капчи
74
+ При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно ее решить.
75
+
76
+ ### Параметры капчи
77
+
78
+ | Параметр | Значение по умолчанию | Описание |
79
+ |-------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------|
80
+ | numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#normal_post) |
81
+ | min_len | 0 | Минимальная длина ответа length |
82
+ | max_len | 0 | Максимальная длина ответа length |
83
+ | phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
84
+ | case_sensitive | 0 | Определяет, учитывается ли регистр в ответе |
85
+ | calc | 0 | Определяет, требуется ли вычисление в решении капчи |
86
+ | lang | - | Определяет язык капчи, см. [список поддерживаемых языков](https://2captcha.com/2captcha-api#language) |
87
+ | hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg |
88
+ | hint_text | - | Подсказка или текст задания, показываемые работникам с капчей |
89
+
90
+ Ниже вы найдете основные примеры для каждого типа капчи. Ознакомьтесь с кодом ниже.
91
+
92
+ ### Обычная капча
93
+ Для обхода обычной капчи (искаженный текст на картинке) используйте следующий метод. Этот метод также может использоваться для распознавания любого текста на картинке.
94
+ ```ruby
95
+ result = client.normal({ image: 'path/to/captcha.jpg'})
96
+ # OR
97
+ result = client.normal({
98
+ image: 'https://site-with-captcha.com/path/to/captcha.jpg'
99
+ })
100
+ ```
101
+
102
+ ### Текстовая капча
103
+ Этот метод может использоваться для обхода капчи, которая требует ответить на вопрос, представленный в явном виде.
104
+ ```ruby
105
+ result = client.text({
106
+ textcaptcha:'Если завтра суббота, то какой сегодня день?',
107
+ lang: "ru"
108
+ })
109
+ ```
110
+
111
+ ### ReCaptcha v2
112
+ Используйте этот метод для решения ReCaptcha V2 и получения токена для обхода защиты.
113
+ ```ruby
114
+ result = client.recaptcha_v2({
115
+ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
116
+ pageurl: 'https://mysite.com/page/with/recaptcha_v2',
117
+ invisible: 1
118
+ })
119
+ ```
120
+
121
+ ### ReCaptcha v3
122
+ Этот метод предоставляет решение для ReCaptcha V3 и возвращает токен.
123
+ ```ruby
124
+ result = client.recaptcha_v3({
125
+ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
126
+ pageurl: 'https://mysite.com/page/with/recaptcha_v3',
127
+ version: 'v3',
128
+ score: 0.3,
129
+ action: 'verify'
130
+ })
131
+ ```
132
+
133
+ ### FunCaptcha
134
+ Метод решения FunCaptcha (Arkoselabs). Он возвращает токен.
135
+ ```ruby
136
+ result = client.funcaptcha({
137
+ publickey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
138
+ pageurl: "https://mysite.com/page/with/funcaptcha",
139
+ surl: "https://client-api.arkoselabs.com"})
140
+ ```
141
+
142
+ ### GeeTest
143
+ Метод для решения головоломки GeeTest captcha. Он возвращает набор токенов в формате JSON.
144
+ ```ruby
145
+ result = client.geetest({
146
+ gt: 'f1ab2cdefa3456789012345b6c78d90e',
147
+ api_server: 'api-na.geetest.com',
148
+ challenge: '12345678abc90123d45678ef90123a456b',
149
+ pageurl: 'https://www.site.com/page/'
150
+ })
151
+ ```
152
+
153
+ ### hCaptcha
154
+ Метод решения hCaptcha. Он возвращает токен для обхода капчи.
155
+ ```ruby
156
+ result = client.hcaptcha({
157
+ sitekey: '10000000-ffff-ffff-ffff-000000000001',
158
+ pageurl: 'https://www.site.com/page/'
159
+ })
160
+ ```
161
+
162
+ ### KeyCaptcha
163
+ Метод на основе токенов для решения KeyCaptcha.
164
+ ```ruby
165
+ result = client.keycaptcha({
166
+ s_s_c_user_id: 10,
167
+ s_s_c_session_id: '493e52c37c10c2bcdf4a00cbc9ccd1e8',
168
+ s_s_c_web_server_sign: '9006dc725760858e4c0715b835472f22-pz-',
169
+ s_s_c_web_server_sign2: '2ca3abe86d90c6142d5571db98af6714',
170
+ pageurl: 'https://www.keycaptcha.ru/demo-magnetic/'
171
+ })
172
+ ```
173
+
174
+ ### Capy
175
+ Метод основан на использовании токенов для обхода паззла Capy.
176
+ ```ruby
177
+ result = client.capy({
178
+ sitekey: 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
179
+ pageurl: 'http://mysite.com/',
180
+ api_server: 'https://jp.api.capy.me/'
181
+ })
182
+ ```
183
+
184
+ ### Grid
185
+ Метод сетки изначально называется методом Old ReCaptcha V2. Этот метод может быть использован для обхода любого типа капчи, где вы можете применить сетку к изображению и необходимо кликнуть по определенным ячейкам сетки. Он возвращает количество выбранных ячеек.
186
+ ```ruby
187
+ result = client.grid({
188
+ image: 'path/to/captcha.jpg',
189
+ rows: 3,
190
+ cols: 3,
191
+ previous_id: 0,
192
+ lang: 'en',
193
+ hint_image: 'path/to/hint.jpg',
194
+ hint_text: 'Select all images with an Orange'
195
+ })
196
+ ```
197
+
198
+ ### Canvas
199
+ Метод Canvas может быть использован, когда вам необходимо нарисовать линию вокруг объекта на изображении. Он возвращает набор координат точек для рисования многоугольника.
200
+ ```ruby
201
+ result = client.canvas({
202
+ image: 'path/to/captcha.jpg',
203
+ previous_id: 0,
204
+ lang: 'en',
205
+ hint_image: 'path/to/hint.jpg',
206
+ hint_text: 'Draw around apple'
207
+ })
208
+ ```
209
+
210
+ ### ClickCaptcha
211
+ Метод ClickCaptcha возвращает координаты точек на изображении капчи. Может быть использован, если вам необходимо кликнуть по определенным точкам на изображении.
212
+ ```ruby
213
+ result = client.coordinates({
214
+ image: 'path/to/captcha.jpg',
215
+ lang: 'en',
216
+ hint_image: 'path/to/hint.jpg',
217
+ hint_text: 'Connect the dots'
218
+ })
219
+ ```
220
+
221
+ ### Rotate
222
+ Этот метод может быть использован для решения капчи, которая просит повернуть объект. В основном используется для обхода FunCaptcha. Он возвращает угол поворота.
223
+ ```ruby
224
+ result = client.rotate({
225
+ image: 'path/to/captcha.jpg',
226
+ angle: 40,
227
+ lang: 'en',
228
+ hint_image: 'path/to/hint.jpg',
229
+ hint_text: 'Put the images in the correct way'
230
+ })
231
+ ```
232
+
233
+ ### Lemin Cropped Captcha
234
+ Используйте этот метод для решения задания hCaptcha. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
235
+ ```ruby
236
+ result = client.lemin({
237
+ captcha_id: 'CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d901d',
238
+ div_id: 'lemin-cropped-captcha',
239
+ pageurl: 'https://www.site.com/page/',
240
+ api_server: "https://api.leminnow.com/"
241
+ })
242
+ ```
243
+
244
+ ### Cloudflare Turnstile
245
+ Используйте этот метод для решения задачи Cloudflare Turnstile. Он возвращает JSON с токеном.
246
+ ```ruby
247
+ result = client.turnstile({
248
+ sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
249
+ pageurl: 'http://mysite.com/'
250
+ })
251
+ ```
252
+
253
+ ### Amazon WAF
254
+ Используйте этот метод для решения Captcha Amazon WAF, также известного как AWS WAF Captcha, который является частью интеллектуальной защиты от угроз для Amazon AWS. Он возвращает JSON с токеном.
255
+ ```ruby
256
+ result = client.amazon_waf({
257
+ sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
258
+ iv: 'CgAHbCe2GgAAAAAj',
259
+ context: '9BUgmlm48F92WUoqv97a49ZuEJJ50TCk9MVr3C7WMtQ0X6flVbufM4n8mjFLmbLVAPgaQ1Jydeaja94iAS49ljb+sUNLoukWedAQZKrlY4RdbOOzvcFqmD/ZepQFS9N5w15Exr4VwnVq+HIxTsDJwRviElWCdzKDebN/mk8/eX2n7qJi5G3Riq0tdQw9+C4diFZU5E97RSeahejOAAJTDqduqW6uLw9NsjJBkDRBlRjxjn5CaMMo5pYOxYbGrM8Un1JH5DMOLeXbq1xWbC17YSEoM1cRFfTgOoc+VpCe36Ai9Kc=',
260
+ pageurl: 'https://non-existent-example.execute-api.us-east-1.amazonaws.com/latest',
261
+ challenge_script: "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
262
+ captcha_script: "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js"
263
+ })
264
+ ```
265
+
266
+ ### GeeTest v4
267
+ Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
268
+ ```ruby
269
+ result = client.geetest_v4({
270
+ captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
271
+ pageurl: 'https://www.site.com/page/'
272
+ })
273
+ ```
274
+
275
+ ### Audio
276
+ Этот метод можно использовать для решения аудио-капчи.
277
+ ```ruby
278
+ result = client.audio({
279
+ audio: 'path/to/audio.jpg',
280
+ lang: "en"
281
+ })
282
+ ```
283
+
284
+ ## Другие методы
285
+
286
+ ### send / get_result
287
+ Эти методы могут быть использованы для ручного отправления капчи и получения результата.
288
+ ```ruby
289
+ # пример для обычной капчи
290
+ captcha_id = client.send('path/to/captcha.jpg')
291
+
292
+ # или для любой другой капчи
293
+ captcha_id = client.send({
294
+ method:"lemin",
295
+ captcha_id: "CROPPED_3dfdd5c_d1872b526b794d83ba3b365eb15a200b",
296
+ api_server: "api.leminnow.com",
297
+ div_id: "lemin-cropped-captcha",
298
+ pageurl: "https://www.site.com/page/"
299
+ })
300
+
301
+ time.sleep(20)
302
+
303
+ # Получить готовый результат
304
+ result = client.get_result(captcha_id)
305
+ ```
306
+
307
+ ### Баланс
308
+ Используйте этот метод, чтобы посмотреть баланс в вашем аккаунте.
309
+ ```ruby
310
+ balance = client.get_balance
311
+ ```
312
+
313
+ ### Отчет
314
+ Используйте этот метод для отправки отчета о правильном или неправильном ответе на капчу.
315
+ ```ruby
316
+ client.report(captcha_id, True) # капча решена правильно
317
+ client.report(captcha_id, False) # капча решена неправильно
318
+ ```
319
+
320
+ ### Обработка ошибок
321
+ В случае ошибки при решении капчи генерируется исключение. Важно правильно обрабатывать такие случаи. Мы рекомендуем использовать конструкцию `begin rescue` для обработки.
322
+ ```ruby
323
+ begin
324
+ result = client.text('Если завтра суббота, то какой сегодня день?')
325
+ rescue Api2Captcha::ValidationException => e
326
+ # переданы недопустимые параметры
327
+ puts(e)
328
+ rescue Api2Captcha::NetworkException => e
329
+ # возникла сетевая ошибка
330
+ puts(e)
331
+ rescue Api2Captcha::ApiException => e
332
+ # ошибка ответа от API
333
+ puts(e)
334
+ rescue Api2Captcha::TimeoutException => e
335
+ # капча до сих пор не решена
336
+ puts(e)
337
+ end
338
+ ```
@@ -31,16 +31,16 @@ class Api2Captcha::Client
31
31
  params["key"] = @api_key
32
32
  params["soft_id"] = @soft_id
33
33
  params["json"] = 1
34
+
34
35
  if @callback
35
36
  params["pingback"] = @callback
36
37
  return_id = true
37
- else
38
- return_id
39
38
  end
39
+
40
40
  complete_params = get_params(params)
41
41
  captcha_id = send_request(complete_params)
42
-
43
- return_id ? captcha_id : get_result(captcha_id)
42
+ return captcha_id if return_id
43
+ get_result(captcha_id)
44
44
  end
45
45
 
46
46
  def send(*args)
@@ -132,7 +132,7 @@ class Api2Captcha::Client
132
132
 
133
133
  def grid(params)
134
134
  params["recaptcha"] = 1
135
- solve("capy", params)
135
+ solve("post", params)
136
136
  end
137
137
 
138
138
  def canvas(params)
@@ -178,6 +178,10 @@ class Api2Captcha::Client
178
178
  solve("audio", params)
179
179
  end
180
180
 
181
+ def yandex(params)
182
+ solve("yandex", params)
183
+ end
184
+
181
185
  private
182
186
 
183
187
  def base_url
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Api2Captcha
4
- VERSION = "1.0.2"
4
+ VERSION = "1.0.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-2captcha
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - 2captcha.com
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-25 00:00:00.000000000 Z
11
+ date: 2023-06-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby package for easy integration with the API of 2captcha captcha solving
14
14
  service to bypass recaptcha, hcaptcha, funcaptcha, geetest and solve any other captchas.
@@ -26,6 +26,7 @@ files:
26
26
  - Gemfile.lock
27
27
  - LICENSE
28
28
  - README.md
29
+ - README.ru.md
29
30
  - Rakefile
30
31
  - api_2captcha.gemspec
31
32
  - lib/api_2captcha.rb