diff --git a/bridges/AllocineFRBridge.php b/bridges/AllocineFRBridge.php index 17da9031..40ef9a98 100644 --- a/bridges/AllocineFRBridge.php +++ b/bridges/AllocineFRBridge.php @@ -8,14 +8,25 @@ class AllocineFRBridge extends BridgeAbstract { const DESCRIPTION = 'Bridge for allocine.fr'; const PARAMETERS = array( array( 'category' => array( - 'name' => 'category', + 'name' => 'Emission', 'type' => 'list', - 'exampleValue' => 'Faux Raccord', - 'title' => 'Select your category', + 'title' => 'Sélectionner l\'emission', 'values' => array( 'Faux Raccord' => 'faux-raccord', - 'Top 5' => 'top-5', - 'Tueurs en Séries' => 'tueurs-en-serie' + 'Fanzone' => 'fanzone', + 'Game In Ciné' => 'game-in-cine', + 'Pour la faire courte' => 'pour-la-faire-courte', + 'Home Cinéma' => 'home-cinema', + 'PILS - Par Ici Les Sorties' => 'pils-par-ici-les-sorties', + 'AlloCiné : l\'émission, sur LeStream' => 'allocine-lemission-sur-lestream', + 'Give Me Five' => 'give-me-five', + 'Aviez-vous remarqué ?' => 'aviez-vous-remarque', + 'Et paf, il est mort' => 'et-paf-il-est-mort', + 'The Big Fan Theory' => 'the-big-fan-theory', + 'Clichés' => 'cliches', + 'Complètement...' => 'completement', + '#Fun Facts' => 'fun-facts', + 'Origin Story' => 'origin-story', ) ) )); @@ -23,19 +34,30 @@ class AllocineFRBridge extends BridgeAbstract { public function getURI(){ if(!is_null($this->getInput('category'))) { - switch($this->getInput('category')) { - case 'faux-raccord': - $uri = static::URI . 'video/programme-12284/saison-32180/'; - break; - case 'top-5': - $uri = static::URI . 'video/programme-12299/saison-29561/'; - break; - case 'tueurs-en-serie': - $uri = static::URI . 'video/programme-12286/saison-22938/'; - break; - } + $categories = array( + 'faux-raccord' => 'video/programme-12284/saison-37054/', + 'fanzone' => 'video/programme-12298/saison-37059/', + 'game-in-cine' => 'video/programme-12288/saison-22971/', + 'pour-la-faire-courte' => 'video/programme-20960/saison-29678/', + 'home-cinema' => 'video/programme-12287/saison-34703/', + 'pils-par-ici-les-sorties' => 'video/programme-25789/saison-37253/', + 'allocine-lemission-sur-lestream' => 'video/programme-25123/saison-36067/', + 'give-me-five' => 'video/programme-21919/saison-34518/', + 'aviez-vous-remarque' => 'video/programme-19518/saison-37084/', + 'et-paf-il-est-mort' => 'video/programme-25113/saison-36657/', + 'the-big-fan-theory' => 'video/programme-20403/saison-37419/', + 'cliches' => 'video/programme-24834/saison-35591/', + 'completement' => 'video/programme-23859/saison-34102/', + 'fun-facts' => 'video/programme-23040/saison-32686/', + 'origin-story' => 'video/programme-25667/saison-37041/' + ); - return $uri; + $category = $this->getInput('category'); + if(array_key_exists($category, $categories)) { + return static::URI . $categories[$category]; + } else { + returnClientError('Emission inconnue'); + } } return parent::getURI(); @@ -63,23 +85,23 @@ class AllocineFRBridge extends BridgeAbstract { self::PARAMETERS[$this->queriedContext]['category']['values'] ); - foreach($html->find('.media-meta-list figure.media-meta-fig') as $element) { + foreach($html->find('div[class=col-left]', 0)->find('div[class*=video-card]') as $element) { $item = array(); - $title = $element->find('div.titlebar h3.title a', 0); - $content = trim($element->innertext); - $figCaption = strpos($content, $category); + $title = $element->find('a[class*=meta-title-link]', 0); + $content = trim($element->outertext); - if($figCaption !== false) { - $content = str_replace('src="/', 'src="' . static::URI, $content); - $content = str_replace('href="/', 'href="' . static::URI, $content); - $content = str_replace('src=\'/', 'src=\'' . static::URI, $content); - $content = str_replace('href=\'/', 'href=\'' . static::URI, $content); - $item['content'] = $content; - $item['title'] = trim($title->innertext); - $item['uri'] = static::URI . $title->href; - $this->items[] = $item; - } + // Replace image 'src' with the one in 'data-src' + $content = preg_replace('@src="data:image/gif;base64,[A-Za-z0-9+\/]*"@', '', $content); + $content = preg_replace('@data-src=@', 'src=', $content); + + // Remove date in the content to prevent content update while the video is getting older + $content = preg_replace('@
.*[^<]*[^<]*
@', '', $content); + + $item['content'] = $content; + $item['title'] = trim($title->innertext); + $item['uri'] = static::URI . substr($title->href, 1); + $this->items[] = $item; } } }