-
Notifications
You must be signed in to change notification settings - Fork 1
/
GoAccessBridge.php
51 lines (40 loc) · 1.15 KB
/
GoAccessBridge.php
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
50
51
<?php
class GoAccessBridge extends BridgeAbstract {
const NAME = 'GoAccess Bridge';
const URI = 'https://goaccess.io/release-notes';
const DESCRIPTION = 'Returns release notes for GoAccess.';
const MAINTAINER = 'VerifiedJoseph';
const PARAMETERS = array(array());
const CACHE_TIMEOUT = 3600;
public function collectData() {
$html = getSimpleHTMLDOM(self::URI);
$container = $html->find('div.container.content', 0);
foreach($container->find('div') as $div) {
$item = array();
$date = $div->find('small', 0)->plaintext;
$div->find('small', 0)->innertext = '';
$item['title'] = $div->find('h2', 0)->plaintext;
$item['uri'] = self::URI . $div->find('a', 0)->href;
$item['timestamp'] = $date;
$content = '';
foreach ($div->find('dt, dd') as $node) {
if ($node->tag === 'dt') {
$text = $node->find('span', 0)->plaintext;
$content .= <<<HTML
<li>[{$text}]
HTML;
}
if ($node->tag === 'dd') {
$text = $node->find('p', 0)->innertext;
$content .= <<<HTML
{$text}</li>
HTML;
}
}
$item['content'] = <<<HTML
<ul>{$content}</ul>
HTML;
$this->items[] = $item;
}
}
}