summaryrefslogtreecommitdiff
path: root/bridges/AllocineFRBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/AllocineFRBridge.php')
-rw-r--r--bridges/AllocineFRBridge.php84
1 files changed, 53 insertions, 31 deletions
diff --git a/bridges/AllocineFRBridge.php b/bridges/AllocineFRBridge.php
index 17da903..40ef9a9 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('@<div class="meta-sub light">.*<span>[^<]*</span>[^<]*</div>@', '', $content);
+
+ $item['content'] = $content;
+ $item['title'] = trim($title->innertext);
+ $item['uri'] = static::URI . substr($title->href, 1);
+ $this->items[] = $item;
}
}
}