returnError('Could not request Se Coucher Moins Bete.', 404); foreach($html->find('article') as $article) { $item = new \Item(); $item->uri = 'http://secouchermoinsbete.fr'.$article->find('p.summary a',0)->href; $item->title = $article->find('header h1 a',0)->innertext; $article->find('span.read-more',0)->outertext=''; // remove text "En savoir plus" from anecdote content $content = $article->find('p.summary a',0)->innertext; $content =substr($content,0,strlen($content)-17); // remove superfluous spaces at the end // get publication date $str_date = $article->find('time',0)->datetime; list($date, $time) = explode(' ', $str_date); list($y, $m, $d) = explode('-', $date); list($h, $i) = explode(':', $time); $timestamp = mktime($h,$i,0,$m,$d,$y); $item->timestamp = $timestamp; // TODO: this should be optional since it is highly time and broadband consuming // check if the anecdote has more content to offer (text details, picture, video) and follow link to retrieve it if that is the case $optcontent = $article->find('div.metadata-list a'); $hasPic = (preg_match("#pas#", $optcontent[0]->innertext)) ? false : true; $hasVid = (preg_match("#pas#", $optcontent[1]->innertext)) ? false : true; $hasDetails = (preg_match("#pas#", $optcontent[2]->innertext)) ? false : true; if($hasDetails || $hasPic || $hasVid) $opt_html = file_get_html($item->uri); if($hasDetails){ $details = $opt_html->find('p.details',0)->innertext; $content = $content . '
' . $details; } if($hasPic){ $picUri = $opt_html->find('div#sources-image-wrapper a',0)->href; $item->pictureUri = $picUri; $content = $content . '
'; } if($hasVid){ $vidUri = $opt_html->find('div#sources-video-wrapper iframe',0)->src; $vidUri = explode('?', $vidUri)[0]; // remove "?autoplay=0" $item->vidUri = $vidUri; $content = $content . ' Vidéo'; } $item->content = $content; $this->items[] = $item; } } public function getName(){ return 'Se Coucher Moins Bête Bridge'; } public function getURI(){ return 'http://secouchermoinsbete.fr/'; } public function getCacheDuration(){ return 21600; // 6 hours } }