2014-05-31 18:58:56 +02:00
< ? php
2016-08-02 15:40:07 +02:00
class DauphineLibereBridge extends BridgeAbstract {
2015-11-05 16:50:18 +01:00
2016-08-02 15:40:07 +02:00
public function loadMetadatas () {
2015-11-05 16:50:18 +01:00
2016-08-02 15:40:07 +02:00
$this -> maintainer = " qwertygc " ;
2016-08-09 20:01:21 +02:00
$this -> name = " Dauphine Bridge " ;
2016-08-02 15:40:07 +02:00
$this -> uri = " http://www.ledauphine.com/ " ;
$this -> description = " Returns the newest articles. " ;
2015-11-05 16:50:18 +01:00
2016-08-22 01:25:56 +02:00
$this -> parameters [] = array (
'u' => array (
'name' => 'Catégorie de l\'article' ,
'type' => 'list' ,
'values' => array (
'À la une' => '' ,
'France Monde' => 'france-monde' ,
'Faits Divers' => 'faits-divers' ,
'Économie et Finance' => 'economie-et-finance' ,
'Politique' => 'politique' ,
'Sport' => 'sport' ,
'Ain' => 'ain' ,
'Alpes-de-Haute-Provence' => 'haute-provence' ,
'Hautes-Alpes' => 'hautes-alpes' ,
'Ardèche' => 'ardeche' ,
'Drôme' => 'drome' ,
'Isère Sud' => 'isere-sud' ,
'Savoie' => 'savoie' ,
'Haute-Savoie' => 'haute-savoie' ,
'Vaucluse' => 'vaucluse'
)
)
);
2016-08-02 15:40:07 +02:00
}
2015-11-05 16:50:18 +01:00
2016-08-06 16:00:56 +02:00
private function ExtractContent ( $url , $context ) {
2016-07-08 19:06:35 +02:00
$html2 = $this -> getSimpleHTMLDOM ( $url , false , $context );
2014-05-31 18:58:56 +02:00
$text = $html2 -> find ( 'div.column' , 0 ) -> innertext ;
$text = preg_replace ( '@<script[^>]*?>.*?</script>@si' , '' , $text );
return $text ;
2016-08-02 15:40:07 +02:00
}
2016-08-02 15:31:55 +02:00
2016-08-25 01:24:53 +02:00
public function collectData (){
$param = $this -> parameters [ $this -> queriedContext ];
2016-08-02 15:31:55 +02:00
2016-08-02 15:57:01 +02:00
// Simulate Mozilla user-agent to fix error 403 (Forbidden)
$opts = array ( 'http' =>
array (
'method' => 'GET' ,
'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
)
);
$context = stream_context_create ( $opts );
2016-08-25 01:24:53 +02:00
if ( isset ( $param [ 'u' ][ 'value' ])) { /* user timeline mode */
$this -> request = $param [ 'u' ][ 'value' ];
2016-07-08 19:06:35 +02:00
$html = $this -> getSimpleHTMLDOM ( 'http://www.ledauphine.com/' . $this -> request . '/rss' , false , $context ) or $this -> returnServerError ( 'Could not request DauphineLibere.' );
2014-05-31 18:58:56 +02:00
}
else {
2016-07-08 19:06:35 +02:00
$html = $this -> getSimpleHTMLDOM ( 'http://www.ledauphine.com/rss' , false , $context ) or $this -> returnServerError ( 'Could not request DauphineLibere.' );
2014-05-31 18:58:56 +02:00
}
$limit = 0 ;
foreach ( $html -> find ( 'item' ) as $element ) {
2016-08-02 15:40:07 +02:00
if ( $limit < 10 ) {
2016-08-22 18:55:59 +02:00
$item = array ();
$item [ 'title' ] = $element -> find ( 'title' , 0 ) -> innertext ;
$item [ 'uri' ] = $element -> find ( 'guid' , 0 ) -> plaintext ;
$item [ 'timestamp' ] = strtotime ( $element -> find ( 'pubDate' , 0 ) -> plaintext );
$item [ 'content' ] = $this -> ExtractContent ( $item [ 'uri' ], $context );
2016-08-02 15:57:01 +02:00
$this -> items [] = $item ;
$limit ++ ;
2016-08-02 15:40:07 +02:00
}
2014-05-31 18:58:56 +02:00
}
2016-08-02 15:40:07 +02:00
}
2014-05-31 18:58:56 +02:00
2016-08-02 15:40:07 +02:00
public function getCacheDuration (){
return 3600 * 2 ; // 2 hours
}
2014-05-31 18:58:56 +02:00
}
2016-07-08 19:06:35 +02:00
?>