rss-bridge/bridges/AllocineFRBridge.php

83 lines
2.6 KiB
PHP
Raw Normal View History

<?php
class AllocineFRBridge extends BridgeAbstract{
const MAINTAINER = "superbaillot.net";
const NAME = "Allo Cine Bridge";
const CACHE_TIMEOUT = 25200; // 7h
2016-09-25 12:31:58 +02:00
const URI = "http://www.allocine.fr/";
const DESCRIPTION = "Bridge for allocine.fr";
const PARAMETERS = array( array(
'category'=>array(
'name'=>'category',
'type'=>'list',
'required'=>true,
'exampleValue'=>'Faux Raccord',
'title'=>'Select your category',
'values'=>array(
'Faux Raccord'=>'faux-raccord',
'Top 5'=>'top-5',
'Tueurs en Séries'=>'tueurs-en-serie'
)
)
));
public function getURI(){
switch($this->getInput('category')){
case 'faux-raccord':
$uri = static::URI.'video/programme-12284/saison-27129/';
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;
}
return $uri;
}
public function getName(){
return self::NAME.' : '
.array_search(
$this->getInput('category'),
self::PARAMETERS[$this->queriedContext]['category']['values']
);
}
public function collectData(){
$html = getSimpleHTMLDOM($this->getURI())
or returnServerError("Could not request ".$this->getURI()." !");
$category=array_search(
$this->getInput('category'),
self::PARAMETERS[$this->queriedContext]['category']['values']
);
foreach($html->find('figure.media-meta-fig') as $element)
{
$item = array();
$title = $element->find('div.titlebar h3.title a', 0);
$content = trim($element->innertext);
$figCaption = strpos($content, $category);
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;
}
}
}
}