Completed
Push — master ( 1c779b...fdc43b )
by Владислав
02:22
created

AnticaptchaReCaptcha::init()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 75
Code Lines 46

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 0
Metric Value
c 3
b 1
f 0
dl 0
loc 75
rs 9
cc 1
eloc 46
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace jumper423\decaptcha\services;
4
5
/**
6
 * Class AnticaptchaReCaptcha.
7
 */
8
class AnticaptchaReCaptcha extends AnticaptchaReCaptchaProxeless
9
{
10
    public function init()
11
    {
12
        parent::init();
13
14
        $this->paramsNames[static::ACTION_FIELD_PROXYTYPE] = 'proxyType';
15
        $this->paramsNames[static::ACTION_FIELD_PROXY] = 'proxyAddress';
16
        $this->paramsNames[static::ACTION_FIELD_PROXYPORT] = 'proxyPort';
17
        $this->paramsNames[static::ACTION_FIELD_PROXYLOGIN] = 'proxyLogin';
18
        $this->paramsNames[static::ACTION_FIELD_PROXYPASS] = 'proxyPassword';
19
        $this->paramsNames[static::ACTION_FIELD_USERAGENT] = 'userAgent';
20
        $this->paramsNames[static::ACTION_FIELD_COOKIES] = 'cookies';
21
22
        $task = &$this->actions[static::ACTION_RECOGNIZE][static::ACTION_FIELDS][static::ACTION_FIELD_TASK][static::ACTION_FIELDS];
23
        $task[static::ACTION_FIELD_METHOD][static::PARAM_SLUG_DEFAULT] = 'NoCaptchaTaskProxyless';
24
        $task[static::ACTION_FIELD_PROXYTYPE] = [
25
            static::PARAM_SLUG_REQUIRE => true,
26
            static::PARAM_SLUG_TYPE    => static::PARAM_FIELD_TYPE_STRING,
27
            static::PARAM_SLUG_ENUM    => [
28
                'http',
29
                'socks4',
30
                'socks5',
31
            ],
32
        ];
33
        $task[static::ACTION_FIELD_PROXY] = [
34
            static::PARAM_SLUG_REQUIRE => true,
35
            static::PARAM_SLUG_TYPE    => static::PARAM_FIELD_TYPE_STRING,
36
        ];
37
        $task[static::ACTION_FIELD_PROXYPORT] = [
38
            static::PARAM_SLUG_REQUIRE => true,
39
            static::PARAM_SLUG_TYPE    => static::PARAM_FIELD_TYPE_INTEGER,
40
        ];
41
        $task[static::ACTION_FIELD_PROXYLOGIN] = [
42
            static::PARAM_SLUG_TYPE => static::PARAM_FIELD_TYPE_STRING,
43
        ];
44
        $task[static::ACTION_FIELD_PROXYPASS] = [
45
            static::PARAM_SLUG_TYPE => static::PARAM_FIELD_TYPE_STRING,
46
        ];
47
        $task[static::ACTION_FIELD_USERAGENT] = [
48
            static::PARAM_SLUG_REQUIRE => true,
49
            static::PARAM_SLUG_TYPE    => static::PARAM_FIELD_TYPE_STRING,
50
        ];
51
        $task[static::ACTION_FIELD_COOKIES] = [
52
            static::PARAM_SLUG_TYPE => static::PARAM_FIELD_TYPE_STRING,
53
        ];
54
55
        $this->wiki->setText(['service', 'name'], [
56
            'ru' => 'AntiCaptcha ReCaptcha v2 без браузера (с прокси)',
57
        ]);
58
        $this->wiki->setText(['recognize', 'desc'], [
59
            'ru' => 'Вам не нужно эмулировать браузер и запускать яваскрипты.
60
            
61
Вы присылаете нам значение "sitekey".
62
63
Мы передаем вам "g-recaptcha-response" и вы просто делаете сабмит формы с этим параметром.
64
65
Объект содержит данные о задаче на решение рекапчи гугла в браузере на компьютере работника. Для обеспечения универсальности решения этого вида капчи нам необходимо использовать все данные, которые вы используете во время автоматизации заполнения формы на целевом сайте, включая прокси, user-agent браузера и cookies. Это позволит избежать любых проблем при изменении гуглом кода своей капчи.
66
67
Наша система решения выстроена таким образом, что браузер работника не получает данные о ваших прокси-серверах, cookies, и других данных. Все эти данные хранятся на нашем сервере и стираются после выполнения задания. Машина работника не имеет доступа к этим данным и взаимодействует исключительно с нашими серверами.
68
69
Перед выполнением задания система проверяет работоспособность вашего прокси-сервера и только после этого передает задачу работнику. Прокси должен обязательно обработать тестовый запрос в течение 5 секунд, иначе задача пометится ошибкой ERROR_PROXY_TIMEOUT и будет отменена.
70
71
Капча может решаться довольно долго по сравнению с обычной капчей, но это компенсируется тем, что полученный g-captcha-response действует еще 120 секунд после того, как работник решил капчу.',
72
        ]);
73
        $this->wiki->setText(['constructor', 'data'], [
74
            static::ACTION_FIELD_KEY => '94f39af4bb295c40546fba5c932e0d32',
75
            static::ACTION_FIELD_PROXYTYPE   => 'http',
76
            static::ACTION_FIELD_PROXY   => '88.45.12.43',
77
            static::ACTION_FIELD_PROXYPORT   => '8080',
78
            static::ACTION_FIELD_USERAGENT   => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
79
        ]);
80
        $this->wiki->setText(['recognize', 'data'], [
81
            static::ACTION_FIELD_GOOGLEKEY => '54as5c6a5s4ca4s56a4sc56a',
82
            static::ACTION_FIELD_PAGEURL   => 'http://site.com/recaptcha-ex',
83
        ]);
84
    }
85
}
86