aboutsummaryrefslogtreecommitdiff
path: root/bridges/WeLiveSecurityBridge.php
blob: 14af1ab3a52351a8e31169e9f004a33a4b8127c8 (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
<?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($item){
		$item = parent::parseItem($item);

		$article_html = getSimpleHTMLDOMCached($item['uri']);
		if(!$article_html) {
			$item['content'] .= '<p><em>Could not request ' . $this->getName() . ': ' . $item['uri'] . '</em></p>';
			return $item;
		}

		$article_content = $article_html->find('div.formatted', 0)->innertext;
		$article_content = stripWithDelimiters($article_content, '<script', '</script>');
		$article_content = stripRecursiveHTMLSection($article_content, 'div', '<div class="comments');
		$article_content = stripRecursiveHTMLSection($article_content, 'div', '<div class="similar-articles');
		$article_content = stripRecursiveHTMLSection($article_content, 'span', '<span class="meta');
		$item['content'] = trim($article_content);

		return $item;
	}

	public function collectData(){
		$feed = static::URI . 'feed/';
		$limit = $this->getInput('limit') ?? 10;
		$this->collectExpandableDatas($feed, $limit);
	}
}