summaryrefslogtreecommitdiff
path: root/bridges/NeuviemeArtBridge.php
blob: d0954fc3eb108c7f7c3a978b8bc4e6346953899c (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 NeuviemeArtBridge extends FeedExpander {

	const MAINTAINER = 'ORelio';
	const NAME = '9ème Art Bridge';
	const URI = 'http://www.9emeart.fr/';
	const DESCRIPTION = 'Returns the newest articles.';

	private function stripWithDelimiters($string, $start, $end){
		while(strpos($string, $start) !== false) {
			$section_to_remove = substr($string, strpos($string, $start));
			$section_to_remove = substr($section_to_remove, 0, strpos($section_to_remove, $end) + strlen($end));
			$string = str_replace($section_to_remove, '', $string);
		}

		return $string;
	}

	protected function parseItem($item){
		$item = parent::parseItem($item);

		$article_html = getSimpleHTMLDOMCached($item['uri']);
		if(!$article_html) {
			$item['content'] = 'Could not request 9eme Art: ' . $item['uri'];
			return $item;
		}

		$article_image = '';
		foreach ($article_html->find('img.img_full') as $img) {
			if ($img->alt == $item['title']) {
				$article_image = self::URI . $img->src;
				break;
			}
		}

		$article_content = '';
		if($article_image) {
			$article_content = '<p><img src="' . $article_image . '" /></p>';
		}
		$article_content .= str_replace(
			'src="/', 'src="' . self::URI,
			$article_html->find('div.newsGenerique_con', 0)->innertext
		);
		$article_content = $this->stripWithDelimiters($article_content, '<script', '</script>');
		$article_content = $this->stripWithDelimiters($article_content, '<style', '</style>');
		$article_content = $this->stripWithDelimiters($article_content, '<link', '>');

		$item['content'] = $article_content;

		return $item;
	}

	public function collectData(){
		$feedUrl = self::URI . '9emeart.rss';
		$this->collectExpandableDatas($feedUrl);
	}
}