aboutsummaryrefslogtreecommitdiff
path: root/bridges/NikonDownloadCenterBridge.php
blob: 143d40f5b09c7d06794b309bd6897abd2bda4eb2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

class NikonDownloadCenterBridge extends BridgeAbstract
{
    const NAME = 'Nikon Download Center – What\'s New';
    const URI = 'https://downloadcenter.nikonimglib.com/';
    const DESCRIPTION = 'Firmware updates and new software from Nikon.';
    const MAINTAINER = 'sal0max';
    const CACHE_TIMEOUT = 60 * 60 * 2; // 2 hours

    public function getURI()
    {
        $year = date('Y');
        return self::URI . 'en/update/index/' . $year . '.html';
    }

    public function getIcon()
    {
        return self::URI . 'favicon.ico';
    }

    public function collectData()
    {
        $html = getSimpleHTMLDOM($this->getURI());

        foreach ($html->find('dd>ul>li') as $element) {
            $date        = $element->find('.date', 0)->plaintext;
            $productType = $element->find('.icon>img', 0)->alt;
            $desc        = $element->find('p>a', 0)->plaintext;
            $link        = urljoin(self::URI, $element->find('p>a', 0)->href);

            $item = [
                'title'     => $desc,
                'uri'       => $link,
                'timestamp' => strtotime($date),
                'content'   => <<<EOD
<p>
 New/updated {$productType}:<br>
 <strong><a href="{$link}">{$desc}</a></strong>
</p>
<p>
 {$date}
</p>
EOD
            ];
            $this->items[] = $item;
        }
    }
}