mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-27 03:50:42 +03:00
56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?php
|
|
|
|
class WeLiveSecurityBridge extends FeedExpander
|
|
{
|
|
const MAINTAINER = 'ORelio';
|
|
const NAME = 'We Live Security';
|
|
const URI = 'https://www.welivesecurity.com/';
|
|
const DESCRIPTION = 'Returns the newest articles.';
|
|
const PARAMETERS = [
|
|
[
|
|
'limit' => self::LIMIT,
|
|
],
|
|
];
|
|
|
|
protected function parseItem(array $item)
|
|
{
|
|
$html = getSimpleHTMLDOMCached($item['uri']);
|
|
if (!$html) {
|
|
$item['content'] .= '<br /><p><em>Could not request ' . $this->getName() . ': ' . $item['uri'] . '</em></p>';
|
|
return $item;
|
|
}
|
|
|
|
$html = $html->find('.article-page', 0);
|
|
$content_html = $html->find('.article-body', 0);
|
|
|
|
// Remove social media footer
|
|
foreach ($content_html->find('blockquote') as $blockquote) {
|
|
if (str_starts_with(trim($blockquote->plaintext), 'Connect with us on')) {
|
|
$blockquote->outertext = '';
|
|
}
|
|
}
|
|
|
|
// Headline subtitle
|
|
$content = $content_html->innertext;
|
|
$subtitle = $html->find('.sub-title', 0);
|
|
if ($subtitle) {
|
|
$content = '<p><b>' . $subtitle->plaintext . '</b></p>' . $content;
|
|
}
|
|
|
|
// Author
|
|
$author = $html->find('.article-author', 0);
|
|
if ($author && !isset($item['author'])) {
|
|
$item['author'] = trim($author->plaintext);
|
|
}
|
|
|
|
$item['content'] = trim($content);
|
|
return $item;
|
|
}
|
|
|
|
public function collectData()
|
|
{
|
|
$feed = static::URI . 'feed/';
|
|
$limit = $this->getInput('limit') ?? 10;
|
|
$this->collectExpandableDatas($feed, $limit);
|
|
}
|
|
}
|