aboutsummaryrefslogtreecommitdiff
path: root/bridges/CBCEditorsBlogBridge.php
blob: c7feb34499958e004dced259044373aab4e49cbc (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
<?php
class CBCEditorsBlogBridge extends BridgeAbstract {

	const MAINTAINER = 'quickwick';
	const NAME = 'CBC Editors Blog';
	const URI = 'https://www.cbc.ca/news/editorsblog';
	const DESCRIPTION = 'Recent CBC Editor\'s Blog posts';

	public function collectData(){
		$html = getSimpleHTMLDOM(self::URI);

		// Loop on each blog post entry
		foreach($html->find('div.contentListCards', 0)->find('a[data-test=type-story]') as $element) {
			$headline = ($element->find('.headline', 0))->innertext;
			$timestamp = ($element->find('time', 0))->datetime;
			$articleUri = 'https://www.cbc.ca' . $element->href;
			$summary = ($element->find('div.description', 0))->innertext;
			$thumbnailUris = ($element->find('img[loading=lazy]', 0))->srcset;
			$thumbnailUri = rtrim(explode(',', $thumbnailUris)[0], ' 300w');

			// Fill item
			$item = array();
			$item['uri'] = $articleUri;
			$item['id'] = $item['uri'];
			$item['timestamp'] = $timestamp;
			$item['title'] = $headline;
			$item['content'] = '<img src="'
			. $thumbnailUri . '" /><br>' . $summary;
			$item['author'] = 'Editor\'s Blog';

			if(isset($item['title'])) {
				$this->items[] = $item;
			}
		}
	}
}