summaryrefslogtreecommitdiff
path: root/bridges/AutoJMBridge.php
blob: 598f04311975bc768a07bcdaf21a68d413dda6bc (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
<?php

class AutoJMBridge extends BridgeAbstract {

	const NAME = 'AutoJM';
	const URI = 'http://www.autojm.fr/';
	const DESCRIPTION = 'Suivre les offres de véhicules proposés par AutoJM en fonction des critères de filtrages';
	const MAINTAINER = 'sysadminstory';
	const PARAMETERS = array(
		'Afficher les offres de véhicules disponible en fonction des critères du site AutoJM' => array(
			'url' => array(
				'name' => 'URL de la recherche',
				'type' => 'text',
				'required' => true,
				'title' => 'URL d\'une recherche avec filtre de véhicules sans le http://www.autojm.fr/',
				'exampleValue' => 'gammes/index/398?order_by=finition_asc&energie[]=3&transmission[]=2&dispo=all'
			)
		)
	);
	const CACHE_TIMEOUT = 3600;

	public function getIcon() {
		return self::URI . 'assets/images/favicon.ico';
	}

	public function collectData() {
		$html = getSimpleHTMLDOM(self::URI . $this->getInput('url'))
			or returnServerError('Could not request AutoJM.');
		$list = $html->find('div[class*=ligne_modele]');
		foreach($list as $element) {
			$image = $element->find('img[class=width-100]', 0)->src;
			$serie = $element->find('div[class=serie]', 0)->find('span', 0)->plaintext;
			$url = $element->find('div[class=serie]', 0)->find('a[class=btn_ligne color-black]', 0)->href;
			if($element->find('div[class*=hasStock-info]', 0) != null) {
				$dispo = 'Disponible';
			} else {
				$dispo = 'Sur commande';
			}
			$carburant = str_replace('dispo |', '', $element->find('div[class=carburant]', 0)->plaintext);
			$transmission = $element->find('div[class*=bv]', 0)->plaintext;
			$places = $element->find('div[class*=places]', 0)->plaintext;
			$portes = $element->find('div[class*=nb_portes]', 0)->plaintext;
			$carosserie = $element->find('div[class*=coloris]', 0)->plaintext;
			$remise = $element->find('div[class*=remise]', 0)->plaintext;
			$prix = $element->find('div[class*=prixjm]', 0)->plaintext;

			$item = array();
			$item['uri'] = $url;
			$item['title'] = $serie;
			$item['content'] = '<p><img style="vertical-align:middle ; padding: 10px" src="' . $image . '" />' . $serie . '</p>';
			$item['content'] .= '<ul><li>Disponibilité : ' . $dispo . '</li>';
			$item['content'] .= '<li>Carburant : ' . $carburant . '</li>';
			$item['content'] .= '<li>Transmission : ' . $transmission . '</li>';
			$item['content'] .= '<li>Nombre de places : ' . $places . '</li>';
			$item['content'] .= '<li>Nombre de portes : ' . $portes . '</li>';
			$item['content'] .= '<li>Série : ' . $serie . '</li>';
			$item['content'] .= '<li>Carosserie : ' . $carosserie . '</li>';
			$item['content'] .= '<li>Remise : ' . $remise . '</li>';
			$item['content'] .= '<li>Prix : ' . $prix . '</li></ul>';

			$this->items[] = $item;
		}

	}
}