RuCaptchaClick   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 64
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A init() 0 41 1
A getCode() 0 16 3
1
<?php
2
3
namespace jumper423\decaptcha\services;
4
5
/**
6
 * Class RuCaptchaGrid.
7
 */
8
class RuCaptchaClick extends RuCaptchaGrid
9
{
10
    public function init()
11
    {
12
        parent::init();
13
14
        unset(
15
            $this->paramsNames[static::ACTION_FIELD_RECAPTCHA],
16
            $this->actions[static::ACTION_RECOGNIZE][static::ACTION_FIELDS][static::ACTION_FIELD_RECAPTCHA]
17
        );
18
19
        $this->paramsNames[static::ACTION_FIELD_COORDINATE] = 'coordinatescaptcha';
20
21
        $this->actions[static::ACTION_RECOGNIZE][static::ACTION_FIELDS][static::ACTION_FIELD_INSTRUCTIONS][static::PARAM_SLUG_REQUIRE] = false;
22
        $this->actions[static::ACTION_RECOGNIZE][static::ACTION_FIELDS][static::ACTION_FIELD_COORDINATE] = [
23
            static::PARAM_SLUG_DEFAULT    => 1,
24
            static::PARAM_SLUG_TYPE       => static::PARAM_FIELD_TYPE_INTEGER,
25
            static::PARAM_SLUG_NOTWIKI    => true,
26
        ];
27
28
        $this->wiki->setText(['service', 'name'], 'RuCaptcha ClickCaptcha');
29
        $this->wiki->setText(['recognize', 'price'], [
30
            'ru' => 'Стоимость 1000 распознаний данной капчи - 70 рублей.',
31
            'en' => 'It costs $1,2 to recognize 1000 CAPTCHAs this way.',
32
        ]);
33
        $this->wiki->setText(['recognize', 'desc'], [
34
            'ru' => 'Распознание любой ClickCaptcha (в том числе и ReCaptcha 2.0). В ответ приходит массив координат, от верхнего левого угла.',
35
            'en' => 'Recognizing any ClickCaptcha (including ReCaptcha 2.0). In response comes an array of coordinates from the top left corner.',
36
        ]);
37
        $this->wiki->setText(['recognize', 'data'], [
38
            static::ACTION_FIELD_INSTRUCTIONS => 'Where\'s the cat?',
39
        ]);
40
        $this->wiki->setText(['menu', 'from_service'], [
41
            RuCaptcha::class,
42
            RuCaptchaInstruction::class,
43
            RuCaptchaGrid::class,
44
            RuCaptchaReCaptcha::class,
45
            RuCaptchaKeyCaptcha::class,
46
            RuCaptchaFunCaptcha::class,
47
            RuCaptchaReCaptchaV3::class,
48
            RuCaptchaGeeTest::class,
49
        ]);
50
    }
51
52
    /**
53
     * @return array
54
     */
55
    public function getCode()
56
    {
57
        $code = parent::getCode();
58
        $code = explode(':', $code)[1];
59
        $code = explode(';', $code);
60
        $result = [];
61
        foreach ($code as $row) {
62
            $rowCoord = explode(',', $row);
63
            foreach ($rowCoord as &$rowCoordOne) {
64
                $rowCoordOne = substr($rowCoordOne, 2);
65
            }
66
            $result[] = $rowCoord;
67
        }
68
69
        return $result;
70
    }
71
}
72