mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2025-04-23 15:06:53 +00:00
Merge b4696e589a
into a23dd1d1e5
This commit is contained in:
commit
f20a2fa1e3
43
bridges/Dilbert.php
Normal file
43
bridges/Dilbert.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @name Dilbert Daily Strip
|
||||||
|
* @description The Unofficial Dilbert Daily Comic Strip RSS Feed via rss-bridge
|
||||||
|
* @update 16/10/2013
|
||||||
|
*/
|
||||||
|
class Dilbert extends BridgeAbstract{
|
||||||
|
|
||||||
|
public function collectData(array $param){
|
||||||
|
$html = file_get_html('http://dilbert.com/strips/') or $this->returnError('Could not request Dilbert.', 404);
|
||||||
|
|
||||||
|
foreach($html->find('div.STR_Image') as $element) {
|
||||||
|
$item = new Item();
|
||||||
|
$href = $element->find('a',0)->href;
|
||||||
|
$item->uri = 'http://dilbert.com' . $href;
|
||||||
|
$content = str_replace('src="/', 'src="http://dilbert.com/',$element->innertext);
|
||||||
|
$content = str_replace('href="/', 'href="http://dilbert.com/',$content);
|
||||||
|
$item->content = $content;
|
||||||
|
$time = strtotime(substr($href, (strrpos($href, "/", -10) + 1), 10));
|
||||||
|
$item->title = date("d/m/Y", $time);
|
||||||
|
$item->timestamp = $time;
|
||||||
|
$this->items[] = $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(){
|
||||||
|
return 'Dilbert';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getURI(){
|
||||||
|
return 'http://dilbert.com';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescription(){
|
||||||
|
return 'Dilbert via rss-bridge';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCacheDuration(){
|
||||||
|
return 14400; // 4 hours
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
55
bridges/LesJoiesDuCode.php
Normal file
55
bridges/LesJoiesDuCode.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @name Les Joies Du Code
|
||||||
|
* @description LesJoiesDuCode via rss-bridge
|
||||||
|
* @update 30/01/2014
|
||||||
|
*/
|
||||||
|
class LesJoiesDuCode extends BridgeAbstract{
|
||||||
|
|
||||||
|
public function collectData(array $param){
|
||||||
|
$html = file_get_html('http://lesjoiesducode.fr/') or $this->returnError('Could not request LesJoiesDuCode.', 404);
|
||||||
|
|
||||||
|
foreach($html->find('div.post') as $element) {
|
||||||
|
$item = new Item();
|
||||||
|
$temp = $element->find('h3 a', 0);
|
||||||
|
|
||||||
|
$titre = $temp->innertext;
|
||||||
|
$url = $temp->href;
|
||||||
|
|
||||||
|
$temp = $element->find('div.bodytype', 0);
|
||||||
|
$content = $temp->innertext;
|
||||||
|
|
||||||
|
$auteur = $temp->find('.c1 em', 0);
|
||||||
|
$pos = strpos($auteur->innertext, "by");
|
||||||
|
|
||||||
|
if($pos > 0)
|
||||||
|
{
|
||||||
|
$auteur = trim(str_replace("*/", "", substr($auteur->innertext, ($pos + 2))));
|
||||||
|
$item->name = $auteur;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$item->content .= trim($content);
|
||||||
|
$item->uri = $url;
|
||||||
|
$item->title = trim($titre);
|
||||||
|
|
||||||
|
$this->items[] = $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(){
|
||||||
|
return 'Les Joies Du Code';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getURI(){
|
||||||
|
return 'http://lesjoiesducode.fr/';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCacheDuration(){
|
||||||
|
return 7200; // 2h hours
|
||||||
|
}
|
||||||
|
public function getDescription(){
|
||||||
|
return "Les Joies Du Code via rss-bridge";
|
||||||
|
}
|
||||||
|
}
|
87
bridges/Sexactu.php
Normal file
87
bridges/Sexactu.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @name Sexactu
|
||||||
|
* @description Sexactu via rss-bridge
|
||||||
|
* @update 04/02/2014
|
||||||
|
*/
|
||||||
|
define("GQ", "http://www.gqmagazine.fr");
|
||||||
|
class Sexactu extends BridgeAbstract{
|
||||||
|
|
||||||
|
public function collectData(array $param){
|
||||||
|
$find = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'novembre', 'décembre');
|
||||||
|
$replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
|
||||||
|
|
||||||
|
$html = file_get_html($this->getURI()) or $this->returnError('Could not request '.$this->getURI(), 404);
|
||||||
|
|
||||||
|
foreach($html->find('.content-holder') as $contentHolder) {
|
||||||
|
// only use first list as second one only contains pages numbers
|
||||||
|
$articles = $contentHolder->find('ul', 0);
|
||||||
|
foreach($articles->find('li') as $element) {
|
||||||
|
// if you ask about that method_exists, there seems to be a bug in simple html dom
|
||||||
|
// see stackoverflow for more details : http://stackoverflow.com/a/10828479/15619
|
||||||
|
if(is_object($element)) {
|
||||||
|
$item = new Item();
|
||||||
|
// various metadata
|
||||||
|
$titleBlock = $element->find('.title-holder', 0);
|
||||||
|
if(is_object($titleBlock)) {
|
||||||
|
$titleDetails = $titleBlock->find('.article-title',0);
|
||||||
|
$titleData = $titleDetails->find('h2', 0)->find('a',0);
|
||||||
|
$titleTimestamp =$titleDetails->find('h4',0);
|
||||||
|
$item->title = $this->correctCase(trim($titleData->innertext));
|
||||||
|
$item->uri = GQ.$titleData->href;
|
||||||
|
|
||||||
|
// Fugly date parsing due to the fact my DNS-323 doesn't support php intl extension
|
||||||
|
$dateText = $titleTimestamp->innertext;
|
||||||
|
$dateText = substr($dateText, strpos($dateText,',')+1);
|
||||||
|
$dateText = str_replace($find, $replace, strtolower($dateText));
|
||||||
|
$date = strtotime($dateText);
|
||||||
|
$item->timestamp = $date;
|
||||||
|
|
||||||
|
$item->name = "Maïa Mazaurette";
|
||||||
|
$elementText = $element->find('.text-container', 0);
|
||||||
|
// don't forget to replace images server url with gq one
|
||||||
|
foreach($elementText->find('img') as $image) {
|
||||||
|
$image->src = GQ.$image->src;
|
||||||
|
}
|
||||||
|
$item->content = $elementText->innertext;
|
||||||
|
$this->items[] = $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(){
|
||||||
|
return 'Sexactu';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getURI(){
|
||||||
|
return GQ.'/sexactu';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCacheDuration(){
|
||||||
|
return 7200; // 2h hours
|
||||||
|
}
|
||||||
|
public function getDescription(){
|
||||||
|
return "Sexactu via rss-bridge";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function correctCase($str) {
|
||||||
|
$sentences=explode('.', mb_strtolower($str, "UTF-8"));
|
||||||
|
$str="";
|
||||||
|
$sep="";
|
||||||
|
foreach ($sentences as $sentence)
|
||||||
|
{
|
||||||
|
//upper case first char
|
||||||
|
$sentence=ucfirst(trim($sentence));
|
||||||
|
|
||||||
|
//append sentence to output
|
||||||
|
$str=$str.$sep.$sentence;
|
||||||
|
$sep=". ";
|
||||||
|
}
|
||||||
|
return $str;
|
||||||
|
}
|
||||||
|
}
|
@ -94,7 +94,7 @@ class Bridge{
|
|||||||
$pathBridge = self::getDir() . $nameBridge . '.php';
|
$pathBridge = self::getDir() . $nameBridge . '.php';
|
||||||
|
|
||||||
if( !file_exists($pathBridge) ){
|
if( !file_exists($pathBridge) ){
|
||||||
throw new \Exception('The bridge you looking for does not exist.');
|
throw new \Exception('The bridge you looking for does not exist. It should be at path '.$pathBridge);
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once $pathBridge;
|
require_once $pathBridge;
|
||||||
|
Loading…
Reference in New Issue
Block a user