Test Failed
Push — 6-0 ( cfb4d5...b26d37 )
by
unknown
04:59
created

CrawlerQueueTask   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 74
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A execute() 0 8 1
A getAdditionalInformation() 0 8 2
A setCliArguments() 0 8 2
1
<?php
2
namespace AOE\Crawler\Task;
3
4
/***************************************************************
5
 *  Copyright notice
6
 *
7
 *  (c) 2016 AOE GmbH <[email protected]>
8
 *
9
 *  All rights reserved
10
 *
11
 *  This script is part of the TYPO3 project. The TYPO3 project is
12
 *  free software; you can redistribute it and/or modify
13
 *  it under the terms of the GNU General Public License as published by
14
 *  the Free Software Foundation; either version 3 of the License, or
15
 *  (at your option) any later version.
16
 *
17
 *  The GNU General Public License can be found at
18
 *  http://www.gnu.org/copyleft/gpl.html.
19
 *
20
 *  This script is distributed in the hope that it will be useful,
21
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 *  GNU General Public License for more details.
24
 *
25
 *  This copyright notice MUST APPEAR in all copies of the script!
26
 ***************************************************************/
27
28
use TYPO3\CMS\Core\Utility\GeneralUtility;
0 ignored issues
show
Bug introduced by
The type TYPO3\CMS\Core\Utility\GeneralUtility was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
29
use TYPO3\CMS\Scheduler\Task\AbstractTask;
0 ignored issues
show
Bug introduced by
The type TYPO3\CMS\Scheduler\Task\AbstractTask was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
30
31
/**
32
 * Class CrawlerQueueTask
33
 *
34
 * @package AOE\Crawler\Task
35
 * @codeCoverageIgnore
36
 */
37
class CrawlerQueueTask extends AbstractTask
38
{
39
    /**
40
     * Define the current mode to process the crawler
41
     *
42
     * @var string
43
     */
44
    const MODE = 'queue';
45
46
    /**
47
     * Depth to run the crawler
48
     *
49
     * @var integer
50
     */
51
    public $depth;
52
53
    /**
54
     * Startpage for the crawler
55
     *
56
     * @var integer
57
     */
58
    public $startPage;
59
60
    /**
61
     * Configuration to run (comma separated list)
62
     *
63
     * @var string
64
     */
65
    public $configuration;
66
67
    /**
68
     * Function executed from the Scheduler.
69
     *
70
     * @return bool
71
     */
72
    public function execute()
73
    {
74
        $this->setCliArguments();
75
76
        /* @var $crawlerObject \tx_crawler_lib */
77
        $crawlerObject = GeneralUtility::makeInstance('tx_crawler_lib');
78
        $crawlerObject->CLI_main_im();
79
        return true;
80
    }
81
82
    /**
83
     * Simulate cli call with setting the required options to the $_SERVER['argv']
84
     *
85
     * @return void
86
     */
87
    protected function setCliArguments()
88
    {
89
        // Make it backwards compatible.
90
        if (is_null($this->startPage)) {
91
            $this->startPage = 0;
92
        }
93
94
        $_SERVER['argv'] = [$_SERVER['argv'][0], $this->startPage,'-ss', '-d', $this->depth, '-o', self::MODE, '-conf', implode(',', $this->configuration)];
0 ignored issues
show
Bug introduced by
$this->configuration of type string is incompatible with the type array expected by parameter $pieces of implode(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

94
        $_SERVER['argv'] = [$_SERVER['argv'][0], $this->startPage,'-ss', '-d', $this->depth, '-o', self::MODE, '-conf', implode(',', /** @scrutinizer ignore-type */ $this->configuration)];
Loading history...
95
    }
96
97
    /**
98
     * Retrieve some details about current scheduler task
99
     * to make the list view more useful.
100
     *
101
     * @return string
102
     */
103
    public function getAdditionalInformation()
104
    {
105
        // Make it backwards compatible.
106
        if (is_null($this->startPage)) {
107
            $this->startPage = 0;
108
        }
109
110
        return implode(',', $this->configuration) . ' (depth: ' . $this->depth . ', startPage:' . $this->startPage . ')';
0 ignored issues
show
Bug introduced by
$this->configuration of type string is incompatible with the type array expected by parameter $pieces of implode(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

110
        return implode(',', /** @scrutinizer ignore-type */ $this->configuration) . ' (depth: ' . $this->depth . ', startPage:' . $this->startPage . ')';
Loading history...
111
    }
112
}
113