123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- <?php
- class LeBonCoinBridge extends BridgeAbstract{
- public function loadMetadatas() {
- $this->maintainer = "16mhz";
- $this->name = "LeBonCoin";
- $this->uri = "http://www.leboncoin.fr";
- $this->description = "Returns most recent results from LeBonCoin for a region, and optionally a category and a keyword .";
- $this->update = "2016-08-06";
- $this->parameters[] =
- '[
- {
- "name" : "Mot Clé",
- "identifier" : "k"
- },
- {
- "name" : "Région",
- "identifier" : "r",
- "type" : "list",
- "values" : [
- {
- "name" : "Alsace",
- "value" : "alsace"
- },
- {
- "name" : "Aquitaine",
- "value" : "aquitaine"
- },
- {
- "name" : "Auvergne",
- "value" : "auvergne"
- },
- {
- "name" : "Basse Normandie",
- "value" : "basse_normandie"
- },
- {
- "name" : "Bourgogne",
- "value" : "bourgogne"
- },
- {
- "name" : "Bretagne",
- "value" : "bretagne"
- },
- {
- "name" : "Centre",
- "value" : "centre"
- },
- {
- "name" : "Champagne Ardenne",
- "value" : "champagne_ardenne"
- },
- {
- "name" : "Corse",
- "value" : "corse"
- },
- {
- "name" : "Franche Comté",
- "value" : "franche_comte"
- },
- {
- "name" : "Haute Normandie",
- "value" : "haute_normandie"
- },
- {
- "name" : "Ile de France",
- "value" : "ile_de_france"
- },
- {
- "name" : "Languedoc Roussillon",
- "value" : "languedoc_roussillon"
- },
- {
- "name" : "Limousin",
- "value" : "limousin"
- },
- {
- "name" : "Lorraine",
- "value" : "lorraine"
- },
- {
- "name" : "Midi Pyrénées",
- "value" : "midi_pyrenees"
- },
- {
- "name" : "Nord Pas De Calais",
- "value" : "nord_pas_de_calais"
- },
- {
- "name" : "Pays de la Loire",
- "value" : "pays_de_la_loire"
- },
- {
- "name" : "Picardie",
- "value" : "picardie"
- },
- {
- "name" : "Poitou Charentes",
- "value" : "poitou_charentes"
- },
- {
- "name" : "Provence Alpes Côte d\'Azur",
- "value" : "provence_alpes_cote_d_azur"
- },
- {
- "name" : "Rhône-Alpes",
- "value" : "rhone_alpes"
- },
- {
- "name" : "Guadeloupe",
- "value" : "guadeloupe"
- },
- {
- "name" : "Martinique",
- "value" : "martinique"
- },
- {
- "name" : "Guyane",
- "value" : "guyane"
- },
- {
- "name" : "Réunion",
- "value" : "reunion"
- }
- ]
- },
- {
- "name" : "Catégorie",
- "identifier" : "c",
- "type" : "list",
- "values" : [
- { "name" : "---- Select ----", "value" : "" },
-
- { "name" : "", "value" : "" },
- { "name" : "EMPLOI", "value" : "_emploi_" },
-
- { "name" : "", "value" : "" },
- { "name" : "VEHICULES", "value" : "_vehicules_" },
- { "name" : " Voitures", "value" : "voitures" },
- { "name" : " Motos", "value" : "motos" },
- { "name" : " Caravaning", "value" : "caravaning" },
- { "name" : " Utilitaires", "value" : "utilitaires" },
- { "name" : " Equipement Auto", "value" : "equipement_auto" },
- { "name" : " Equipement Moto", "value" : "equipement_moto" },
- { "name" : " Equipement Caravaning", "value" : "equipement_caravaning" },
- { "name" : " Nautisme", "value" : "nautisme" },
- { "name" : " Equipement Nautisme", "value" : "equipement_nautisme" },
-
- { "name" : "", "value" : "" },
- { "name" : "IMMOBILIER", "value" : "_immobilier_" },
- { "name" : " Ventes immobilieres", "value" : "ventes_immobilieres" },
- { "name" : " Locations", "value" : "locations" },
- { "name" : " Colocations", "value" : "colocations" },
- { "name" : " Bureaux & Commerces", "value" : "bureaux_commerces" },
-
- { "name" : "", "value" : "" },
- { "name" : "VACANCES", "value" : "_vacances_" },
- { "name" : " Locations gites", "value" : "locations_gites" },
- { "name" : " Chambres d\'hôtes", "value" : "chambres_d_hotes" },
- { "name" : " Campings", "value" : "campings" },
- { "name" : " Hôtels", "value" : "hotels" },
- { "name" : " Hébergements insolites", "value" : "hebergements_insolites" },
-
- { "name" : "", "value" : "" },
- { "name" : "MULTIMEDIA", "value" : "_multimedia_" },
- { "name" : " Informatique", "value" : "informatique" },
- { "name" : " Consoles & Jeux vidéo", "value" : "consoles_jeux_video" },
- { "name" : " Image & Son", "value" : "image_son" },
- { "name" : " Téléphonie", "value" : "telephonie" },
-
- { "name" : "", "value" : "" },
- { "name" : "LOISIRS", "value" : "_loisirs_" },
- { "name" : " DVD / Films", "value" : "dvd_films" },
- { "name" : " CD / Musique", "value" : "cd_musique" },
- { "name" : " Livres", "value" : "livres" },
- { "name" : " Animaux", "value" : "animaux" },
- { "name" : " Vélos", "value" : "velos" },
- { "name" : " Sports & Hobbies", "value" : "sports_hobbies" },
- { "name" : " Instruments de musique", "value" : "instruments_de_musique" },
- { "name" : " Collection", "value" : "collection" },
- { "name" : " Jeux & Jouets", "value" : "jeux_jouets" },
- { "name" : " Vins & Gastronomie", "value" : "vins_gastronomie" },
-
- { "name" : "", "value" : "" },
- { "name" : "MATERIEL PROFESSIONNEL", "value" : "_materiel_professionnel_" },
- { "name" : " Materiel Agricole", "value" : "materiel_agricole" },
- { "name" : " Transport - Manutention", "value" : "transport_manutention" },
- { "name" : " BTP - Chantier - Gros-oeuvre", "value" : "btp_chantier_gros_oeuvre" },
- { "name" : " Outillage - Materiaux 2nd-oeuvre", "value" : "outillage_materiaux_2nd_oeuvre" },
- { "name" : " Equipements Industriels", "value" : "equipements_industriels" },
- { "name" : " Restauration - Hôtellerie", "value" : "restauration_hotellerie" },
- { "name" : " Fournitures de Bureau", "value" : "fournitures_de_bureau" },
- { "name" : " Commerces & Marchés", "value" : "commerces_marches" },
- { "name" : " Matériel médical", "value" : "materiel_medical" },
-
- { "name" : "", "value" : "" },
- { "name" : "SERVICES", "value" : "_services_" },
- { "name" : " Prestations de services", "value" : "prestations_de_services" },
- { "name" : " Billetterie", "value" : "billetterie" },
- { "name" : " Evénements", "value" : "evenements" },
- { "name" : " Cours particuliers", "value" : "cours_particuliers" },
- { "name" : " Covoiturage", "value" : "covoiturage" },
-
- { "name" : "", "value" : "" },
- { "name" : "MAISON", "value" : "_maison_" },
- { "name" : " Ameublement", "value" : "ameublement" },
- { "name" : " Electroménager", "value" : "electromenager" },
- { "name" : " Arts de la table", "value" : "arts_de_la_table" },
- { "name" : " Décoration", "value" : "decoration" },
- { "name" : " Linge de maison", "value" : "linge_de_maison" },
- { "name" : " Bricolage", "value" : "bricolage" },
- { "name" : " Jardinage", "value" : "jardinage" },
- { "name" : " Vêtements", "value" : "vetements" },
- { "name" : " Chaussures", "value" : "chaussures" },
- { "name" : " Accessoires & Bagagerie", "value" : "accessoires_bagagerie" },
- { "name" : " Montres & Bijoux", "value" : "montres_bijoux" },
- { "name" : " Equipement bébé", "value" : "equipement_bebe" },
- { "name" : " Vêtements bébé", "value" : "vetements_bebe" },
-
- { "name" : "", "value" : "" },
- { "name" : "AUTRES", "value" : "autres" }
- ]
- }
- ]';
- }
- public function collectData(array $param){
- $html = '';
- if (empty($param['c'])) {
- $link = 'http://www.leboncoin.fr/annonces/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']);
- }
- else {
- $link = 'http://www.leboncoin.fr/' . $param['c'] . '/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']);
- }
- $html = $this->file_get_html($link) or $this->returnError('Could not request LeBonCoin.', 404);
- $list = $html->find('.tabsContent', 0);
- if($list === NULL) {
- return;
- }
- $tags = $list->find('li');
- foreach($tags as $element) {
- $element = $element->find('a', 0);
- $item = new \Item();
- $item->uri = $element->href;
- $title = html_entity_decode($element->getAttribute('title'));
- $content_image = $element->find('div.item_image', 0)->find('.lazyload', 0);
- if($content_image !== NULL) {
- $content = '<img src="' . $content_image->getAttribute('data-imgsrc') . '" alt="thumbnail">';
- } else {
- $content = "";
- }
- $date = $element->find('aside.item_absolute', 0)->find('p.item_sup', 0);
- $detailsList = $element->find('section.item_infos', 0);
- for($i = 0; $i <= 1; $i++) $content .= $detailsList->find('p.item_supp', $i)->plaintext;
- $price = $detailsList->find('h3.item_price', 0);
- $content .= $price === NULL ? '' : $price->plaintext;
- $item->title = $title;
- $item->content = $content . $date;
- $this->items[] = $item;
- }
- }
- public function getName(){
- return 'LeBonCoin';
- }
- public function getURI(){
- return 'http://www.leboncoin.fr';
- }
- }
|