rss-bridge/bridges/GoAccessBridge.php

39 lines
1.2 KiB
PHP
Raw Normal View History

2023-06-07 23:36:21 +03:00
<?php
class GoAccessBridge extends BridgeAbstract
{
const MAINTAINER = 'Simounet';
const NAME = 'GoAccess';
const URI_BASE = 'https://goaccess.io';
const URI = self::URI_BASE . '/release-notes';
const CACHE_TIMEOUT = 21600; //6h
const DESCRIPTION = 'GoAccess releases.';
public function collectData()
{
$html = getSimpleHTMLDOM(self::URI);
$container = $html->find('.container.content', 0);
foreach ($container->find('div') as $element) {
$titleEl = $element->find('h2', 0);
$dateEl = $titleEl->find('small', 0);
$date = trim($dateEl->plaintext);
$title = is_object($titleEl) ? str_replace($date, '', $titleEl->plaintext) : '';
$linkEl = $titleEl->find('a', 0);
$link = is_object($linkEl) ? $linkEl->href : '';
$postUrl = self::URI . $link;
$contentEl = $element->find('.dl-horizontal', 0);
$content = '<dl>' . $contentEl->xmltext() . '</dl>';
$item = [];
$item['uri'] = $postUrl;
$item['timestamp'] = strtotime($date);
$item['title'] = $title;
$item['content'] = $content;
$this->items[] = $item;
}
}
}