|
15 | 15 |
|
16 | 16 | import jconfig |
17 | 17 |
|
18 | | -DELAY = 0.36 # 3 requests per second |
| 18 | +DELAY = 0.34 # ~3 requests per second |
19 | 19 | TOO_MANY_RPS_CODE = 6 |
20 | 20 | CAPTCHA_ERROR_CODE = 14 |
21 | 21 | NEED_VALIDATION_CODE = 17 |
|
33 | 33 |
|
34 | 34 | class VkApi(object): |
35 | 35 | def __init__(self, login=None, password=None, number=None, sec_number=None, |
36 | | - token=None, |
37 | | - proxies=None, captcha_handler=None, config_filename='vk_config.json', |
| 36 | + token=None, proxies=None, captcha_handler=None, |
| 37 | + config_filename='vk_config.json', |
38 | 38 | api_version='5.35', app_id=2895443, scope=33554431, |
39 | 39 | client_secret=None): |
40 | 40 | """ |
@@ -188,6 +188,7 @@ def security_check(self, url=None, response=None): |
188 | 188 |
|
189 | 189 | phone_postfix = search_re(RE_PHONE_POSTFIX, response.text) |
190 | 190 |
|
| 191 | + code = None |
191 | 192 | if self.sec_number: |
192 | 193 | code = self.sec_number |
193 | 194 | elif self.number: |
@@ -312,7 +313,7 @@ def http_handler(self, error): |
312 | 313 |
|
313 | 314 | def too_many_rps_handler(self, error): |
314 | 315 | time.sleep(0.5) |
315 | | - error.try_method() |
| 316 | + return error.try_method() |
316 | 317 |
|
317 | 318 | def method(self, method, values=None, captcha_sid=None, captcha_key=None): |
318 | 319 | """ Использование методов API |
@@ -348,8 +349,8 @@ def method(self, method, values=None, captcha_sid=None, captcha_key=None): |
348 | 349 | if delay > 0: |
349 | 350 | time.sleep(delay) |
350 | 351 |
|
351 | | - self.last_request = time.time() |
352 | 352 | response = self.http.post(url, values) |
| 353 | + self.last_request = time.time() |
353 | 354 |
|
354 | 355 | if response.ok: |
355 | 356 | response = response.json() |
@@ -444,7 +445,7 @@ class AccountBlocked(AuthorizationError): |
444 | 445 |
|
445 | 446 |
|
446 | 447 | class SecurityCheck(AuthorizationError): |
447 | | - def __init__(self, phone_prefix, phone_postfix, response=None): |
| 448 | + def __init__(self, phone_prefix=None, phone_postfix=None, response=None): |
448 | 449 | self.phone_prefix = phone_prefix |
449 | 450 | self.phone_postfix = phone_postfix |
450 | 451 | self.response = response |
@@ -527,12 +528,13 @@ def try_again(self, key): |
527 | 528 | :param key: текст капчи |
528 | 529 | """ |
529 | 530 |
|
530 | | - self.key = key |
| 531 | + if key: |
| 532 | + self.key = key |
531 | 533 |
|
532 | | - self.kwargs.update({ |
533 | | - 'captcha_sid': self.sid, |
534 | | - 'captcha_key': self.key |
535 | | - }) |
| 534 | + self.kwargs.update({ |
| 535 | + 'captcha_sid': self.sid, |
| 536 | + 'captcha_key': self.key |
| 537 | + }) |
536 | 538 |
|
537 | 539 | return self.func(*self.args, **self.kwargs) |
538 | 540 |
|
|
0 commit comments