GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

CheckLinksCommand::handle()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Spatie\LinkChecker;
4
5
use Exception;
6
use Illuminate\Console\Command;
7
use Spatie\Crawler\Crawler;
8
use Spatie\Crawler\CrawlObserver;
9
use Spatie\Crawler\CrawlProfile;
10
11
class CheckLinksCommand extends Command
12
{
13
    /**
14
     * The console command name.
15
     *
16
     * @var string
17
     */
18
    protected $signature = 'link-checker:run
19
                        {--url= : the url to be crawler}
20
                        {--profile= : The profiler to be used}
21
                        {--reporter= : The reporter to be used}
22
                        {--concurrency=10 : The amount of concurrent requests}
23
                        ';
24
    /**
25
     * The console command description.
26
     *
27
     * @var string
28
     */
29
    protected $description = 'Check all links';
30
31
    public function handle()
32
    {
33
        Crawler::create(config('laravel-link-checker.client_options', []))
34
            ->setCrawlProfile($this->getProfile())
35
            ->setCrawlObserver($this->getReporter())
36
            ->setConcurrency($this->getConcurrency())
37
            ->startCrawling($this->getUrlToBeCrawled());
38
39
        $this->info('All done!');
40
    }
41
42
    /**
43
     * Returns concurrency. If not found, simply returns a default value like
44
     * 10 (default from spatie/crawler).
45
     *
46
     * @return int
47
     */
48
    protected function getConcurrency(): int
49
    {
50
        if ($this->option('concurrency') !== null) {
51
            return $this->option('concurrency');
52
        }
53
54
        if (config('laravel-link-checker.concurrency') != '') {
55
            return config('laravel-link-checker.concurrency');
56
        }
57
58
        return 10;
59
    }
60
61
    /**
62
     * Determine the url to be crawled.
63
     *
64
     * @return null|string
65
     *
66
     * @throws \Exception
67
     */
68
    protected function getUrlToBeCrawled()
69
    {
70
        if (! is_null($this->option('url'))) {
71
            return $this->option('url');
72
        }
73
74
        if (config('laravel-link-checker.url') != '') {
75
            return config('laravel-link-checker.url');
76
        }
77
78
        if (config('app.url') != '') {
79
            return config('app.url');
80
        }
81
82
        throw new Exception('could not determine which url to be crawled.');
83
    }
84
85
    /**
86
     * Get the profile.
87
     */
88 View Code Duplication
    protected function getProfile(): CrawlProfile
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
89
    {
90
        if (! is_null($this->option('profile'))) {
91
            return app($this->option('profile'));
92
        }
93
94
        if (config('laravel-link-checker.default_profile') != '') {
95
            return app(config('laravel-link-checker.default_profile'));
96
        }
97
98
        throw new Exception('Could not determine the profile to be used');
99
    }
100
101
    /**
102
     * Get the reporter.
103
     */
104 View Code Duplication
    protected function getReporter(): CrawlObserver
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
105
    {
106
        if (! is_null($this->option('reporter'))) {
107
            return app($this->option('reporter'));
108
        }
109
110
        if (config('laravel-link-checker.default_reporter') != '') {
111
            return app(config('laravel-link-checker.default_reporter'));
112
        }
113
114
        throw new Exception('Could not reporter the profile to be used');
115
    }
116
}
117