summaryrefslogtreecommitdiff
path: root/bridges/SupInfoBridge.php
blob: 40160e4132a8e0b4861b7861802306ab887bd5f4 (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
<?php
class SupInfoBridge extends BridgeAbstract {

	const MAINTAINER = 'teromene';
	const NAME = 'SupInfoBridge';
	const URI = 'https://www.supinfo.com';
	const DESCRIPTION = 'Returns the newest articles.';

	const PARAMETERS = array(array(
		'tag' => array(
			'name' => 'Category (not mandatory)',
			'type' => 'text',
		)
	));

	public function collectData() {

		if(empty($this->getInput('tag'))) {
			$html = getSimpleHTMLDOM(self::URI . '/articles/')
				or returnServerError('Unable to fetch articles !');
		} else {
			$html = getSimpleHTMLDOM(self::URI . '/articles/tag/' . $this->getInput('tag'))
				or returnServerError('Unable to fetch articles !');
		}
		$content = $html->find('#latest', 0)->find('ul[class=courseContent]', 0);

		for($i = 0; $i < 5; $i++) {

			$this->items[] = $this->fetchArticle($content->find('h4', $i)->find('a', 0)->href);

		}
	}

	public function fetchArticle($link) {

		$articleHTML = getSimpleHTMLDOM(self::URI . $link)
			or returnServerError('Unable to fetch article !');

		$article = $articleHTML->find('div[id=courseDocZero]', 0);
		$item = array();
		$item['author'] = $article->find('#courseMetas', 0)->find('a', 0)->plaintext;
		$item['id'] = $link;
		$item['uri'] = self::URI . $link;
		$item['title'] = $article->find('h1', 0)->plaintext;
		$date = explode(' ', $article->find('#courseMetas', 0)->find('span', 1)->plaintext);
		$item['timestamp'] = DateTime::createFromFormat('d/m/Y H:i:s', $date[2] . ' ' . $date[4])->getTimestamp();

		$article->find('div[id=courseHeader]', 0)->innertext = '';
		$article->find('div[id=author-infos]', 0)->innertext = '';
		$article->find('div[id=cartouche-tete]', 0)->innertext = '';
		$item['content'] = $article;

		return $item;

	}

}