summaryrefslogtreecommitdiff
path: root/bridges/EsquerdaNetBridge.php
blob: f459eb23e311d118e7838582a7b9753a3ea3dcb1 (plain)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
class EsquerdaNetBridge extends FeedExpander {
	const MAINTAINER = 'somini';
	const NAME = 'Esquerda.net';
	const URI = 'https://www.esquerda.net';
	const DESCRIPTION = 'Esquerda.net';
	const PARAMETERS = array(
		array(
			'feed' => array(
				'name' => 'Feed',
				'type' => 'list',
				'defaultValue' => 'Geral',
				'values' => array(
					'Geral' => 'geral',
					'Dossier' => 'artigos-dossier',
					'Vídeo' => 'video',
					'Opinião' => 'opinioes',
					'Rádio' => 'radio',
				)
			)
		)
	);

	public function getURI() {
		$type = $this->getInput('feed');
		return self::URI . '/rss/' . $type;
	}

	public function getIcon() {
		return 'https://www.esquerda.net/sites/default/files/favicon_0.ico';
	}

	public function collectData(){
		parent::collectExpandableDatas($this->getURI());
	}

	protected function parseItem($newsItem){
		# Fix Publish date
		$badDate = $newsItem->pubDate;
		preg_match('|(?P<day>\d\d)/(?P<month>\d\d)/(?P<year>\d\d\d\d) - (?P<hour>\d\d):(?P<minute>\d\d)|', $badDate, $d);
		$newsItem->pubDate = sprintf('%s-%s-%sT%s:%s', $d['year'], $d['month'], $d['day'], $d['hour'], $d['minute']);
		$item = parent::parseItem($newsItem);
		# Include all the content
		$uri = $item['uri'];
		$html = getSimpleHTMLDOMCached($uri)
			or returnServerError('Could not load content for ' . $uri);
		$content = $html->find('div#content div.content', 0);
		## Fix author
		$authorHTML = $html->find('.field-name-field-op-author a', 0);
		if ($authorHTML) {
			$item['author'] = $authorHTML->innertext;
			$authorHTML->remove();
		}
		## Remove crap
		$content->find('.field-name-addtoany', 0)->remove();
		## Fix links
		$content = defaultLinkTo($content, self::URI);
		## Fix Images
		foreach($content->find('img') as $img) {
			$altSrc = $img->getAttribute('data-src');
			if ($altSrc) {
				$img->setAttribute('src', $altSrc);
			}
			$img->width = null;
			$img->height = null;
		}
		$item['content'] = $content;
		return $item;
	}
}