<?php
/**
* RssBridgeLeBonCoin
* Search LeBonCoin for most recent ads in a specific region and topic.
* Returns the most recent classified ads in results, sorting by date (most recent first).
* Region identifiers : alsace, aquitaine, auvergne, basse_normandie, bourgogne, bretagne, centre,
*     champagne_ardenne, corse, franche_comte, haute_normandie, ile_de_france, languedoc_roussillon,
*     limousin, lorraine, midi_pyrenees, nord_pas_de_calais, pays_de_la_loire, picardie,
*     poitou_charentes, provence_alpes_cote_d_azur, rhone_alpes, guadeloupe, martinique, guyane, reunion.
* 2014-07-22
*
* @name LeBonCoin
* @homepage http://www.leboncoin.fr
* @description Returns most recent results from LeBonCoin for a region and a keyword.
* @maintainer 16mhz
* @use1(r="Region identifier", k="Keyword")
*/

class LeBonCoinBridge extends BridgeAbstract{

    public function collectData(array $param){

        $html = '';
        $link = 'http://www.leboncoin.fr/annonces/offres/' . $param[r] . '/?f=a&th=1&q=' . $param[k];
        $html = file_get_html($link) or $this->returnError('Could not request LeBonCoin.', 404);

        $list = $html->find('.list-lbc', 0);
        $tags = $list->find('a');

        foreach($tags as $element) {
                $item = new \Item();
                $item->uri = $element->href;
                $title = $element->getAttribute('title');

                $content = '<img src="' . $element->find('div.image', 0)->find('img', 0)->getAttribute('src') . '" alt="thumbnail">';
                $date = $element->find('div.date', 0)->find('div', 0) . $element->find('div.date', 0)->find('div', 1) . '<br/>';
                $detailsList = $element->find('div.detail', 0);

                for ($i = 1; $i < 4; $i++) {
                    $line = $detailsList->find('div', $i);
                    $content .= $line;
                }

                $item->title = $title . ' - ' . $detailsList->find('div', 3);
                $item->content = $content . $date;
                $this->items[] = $item;
        }
  }

    public function getName(){
        return 'LeBonCoin';
    }

    public function getURI(){
        return 'http://www.leboncoin.fr';
    }

    public function getCacheDuration(){
        return 3600; // 1 hour
    }
}