Completed
Branch master (446cf6)
by Guillaume
04:16 queued 01:26
created

Dummy   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 21
dl 0
loc 41
c 0
b 0
f 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A format() 0 7 1
A removeNavbar() 0 3 1
A entries() 0 15 1
1
<?php
2
3
namespace App\Docsets;
4
5
use Illuminate\Support\Collection;
6
use Wa72\HtmlPageDom\HtmlPageCrawler;
7
use Illuminate\Support\Facades\Storage;
8
9
class Dummy extends BaseDocset
10
{
11
    public const CODE = 'dummy';
12
    public const NAME = 'Dummy';
13
    public const URL = 'sleeplessmind.info';
14
    public const INDEX = 'index.html';
15
    public const PLAYGROUND = '';
16
    public const ICON_16 = 'favicon-16x16.png';
17
    public const ICON_32 = 'favicon-32x32.png';
18
    public const EXTERNAL_DOMAINS = [];
19
20
21
    public function entries(string $file): Collection
22
    {
23
        $entries = collect();
24
25
        $crawler = HtmlPageCrawler::create(Storage::get($file));
26
27
        $crawler->filter('a.nav-item')->each(static function (HtmlPageCrawler $node) use ($entries) {
28
            $entries->push([
29
                'name' => $node->text(),
30
                'type' => 'Guide',
31
                'path' => $node->attr('href')
32
            ]);
33
        });
34
35
        return $entries;
36
    }
37
38
    public function format(string $html): string
39
    {
40
        $crawler = HtmlPageCrawler::create($html);
41
42
        $this->removeNavbar($crawler);
43
44
        return $crawler->saveHTML();
45
    }
46
47
    protected function removeNavbar(HtmlPageCrawler $crawler)
48
    {
49
        $crawler->filter('.nav-item')->remove();
50
    }
51
}
52