array( 'name' => 'Show full contents', 'type' => 'checkbox', ) )); public function getIcon() { return 'https://s.japan-expo.com/katana/images/JES073/favicons/paris.png'; } public function collectData(){ $convert_article_images = function($matches){ if(is_array($matches) && count($matches) > 1) { return ''; } }; $html = getSimpleHTMLDOM(self::URI) or returnServerError('Could not request JapanExpo: ' . self::URI); $fullcontent = $this->getInput('mode'); $count = 0; foreach($html->find('a._tile2') as $element) { $url = $element->href; $thumbnail = 'https://s.japan-expo.com/katana/images/JES049/paris.png'; preg_match('/url\(([^)]+)\)/', $element->find('img.rspvimgset', 0)->style, $img_search_result); if(count($img_search_result) >= 2) $thumbnail = trim($img_search_result[1], "'"); if($fullcontent) { if($count >= 5) { break; } $article_html = getSimpleHTMLDOMCached($url) or returnServerError('Could not request JapanExpo: ' . $url); $header = $article_html->find('header.pageHeadBox', 0); $timestamp = strtotime($header->find('time', 0)->datetime); $title_html = $header->find('div.section', 0)->next_sibling(); $title = $title_html->plaintext; $headings = $title_html->next_sibling()->outertext; $article = $article_html->find('div.content', 0)->innertext; $article = preg_replace_callback( '/]+ style="[^\(]+\(\'([^\']+)\'[^>]+>/i', $convert_article_images, $article); $content = $headings . $article; } else { $date_text = $element->find('span.date', 0)->plaintext; $timestamp = $this->frenchPubDateToTimestamp($date_text); $title = trim($element->find('span._title', 0)->plaintext); $content = '
' . $date_text . '
Lire l\'article'; } $item = array(); $item['uri'] = $url; $item['title'] = $title; $item['timestamp'] = $timestamp; $item['enclosures'] = array($thumbnail); $item['content'] = $content; $this->items[] = $item; $count++; } } private function frenchPubDateToTimestamp($date_to_parse) { return strtotime( strtr( strtolower(str_replace('Publié le ', '', $date_to_parse)), array( 'janvier' => 'jan', 'février' => 'feb', 'mars' => 'march', 'avril' => 'apr', 'mai' => 'may', 'juin' => 'jun', 'juillet' => 'jul', 'août' => 'aug', 'septembre' => 'sep', 'octobre' => 'oct', 'novembre' => 'nov', 'décembre' => 'dec' ) ) ); } }