5ad157d2fd
BridgeAbstract will return 3600 seconds by default, so the function can be removed from any bridge implementing getCacheDuration returning the same value. Documentation updated accordingly.
53 lines
1.5 KiB
PHP
53 lines
1.5 KiB
PHP
<?php
|
|
class ReporterreBridge extends BridgeAbstract{
|
|
|
|
public function loadMetadatas() {
|
|
$this->maintainer = "nyutag";
|
|
$this->name = "Reporterre Bridge";
|
|
$this->uri = "http://www.reporterre.net/";
|
|
$this->description = "Returns the newest articles.";
|
|
$this->update = "2016-08-06";
|
|
}
|
|
|
|
private function ExtractContentReporterre($url) {
|
|
$html2 = $this->file_get_html($url);
|
|
|
|
foreach($html2->find('div[style=text-align:justify]') as $e) {
|
|
$text = $e->outertext;
|
|
}
|
|
|
|
$html2->clear();
|
|
unset ($html2);
|
|
|
|
// Replace all relative urls with absolute ones
|
|
$text = preg_replace('/(href|src)(\=[\"\'])(?!http)([^"\']+)/ims', "$1$2" . $this->getURI() . "$3", $text);
|
|
|
|
$text = strip_tags($text, '<p><br><a><img>');
|
|
return $text;
|
|
}
|
|
|
|
public function collectData(array $param){
|
|
$html = $this->file_get_html('http://www.reporterre.net/spip.php?page=backend') or $this->returnError('Could not request Reporterre.', 404);
|
|
$limit = 0;
|
|
|
|
foreach($html->find('item') as $element) {
|
|
if($limit < 5) {
|
|
$item = new \Item();
|
|
$item->title = html_entity_decode($element->find('title', 0)->plaintext);
|
|
$item->timestamp = strtotime($element->find('dc:date', 0)->plaintext);
|
|
$item->uri = $element->find('guid', 0)->innertext;
|
|
$item->content = html_entity_decode($this->ExtractContentReporterre($item->uri));
|
|
$this->items[] = $item;
|
|
$limit++;
|
|
}
|
|
}
|
|
}
|
|
|
|
public function getName(){
|
|
return 'Reporterre Bridge';
|
|
}
|
|
|
|
public function getURI(){
|
|
return 'http://www.reporterre.net/';
|
|
}
|
|
}
|