forked from blallo/rss-bridge
1d53b70272
Many bridges implemented getDescription() which is only applicable for bridges extending RSSExpander. Functions that are not part of the abstract class or interface should be in private scope for better readability.
78 lines
No EOL
2 KiB
PHP
78 lines
No EOL
2 KiB
PHP
<?php
|
|
class CADBridge extends BridgeAbstract{
|
|
public function loadMetadatas() {
|
|
$this->maintainer = "nyutag";
|
|
$this->name = "CAD Bridge";
|
|
$this->uri = "http://www.cad-comic.com/";
|
|
$this->description = "Returns the newest articles.";
|
|
$this->update = "2016-08-06";
|
|
}
|
|
|
|
private function CADExtractContent($url) {
|
|
$html3 = $this->file_get_html($url);
|
|
|
|
// The request might fail due to missing https support or wrong URL
|
|
if($html3 == false)
|
|
return 'Daily comic not released yet';
|
|
|
|
$htmlpart = explode("/", $url);
|
|
|
|
switch ($htmlpart[3]){
|
|
case 'cad':
|
|
preg_match_all("/http:\/\/cdn2\.cad-comic\.com\/comics\/cad-\S*png/", $html3, $url2);
|
|
break;
|
|
case 'sillies':
|
|
preg_match_all("/http:\/\/cdn2\.cad-comic\.com\/comics\/sillies-\S*gif/", $html3, $url2);
|
|
break;
|
|
default:
|
|
return 'Daily comic not released yet';
|
|
}
|
|
|
|
$img = implode ($url2[0]);
|
|
$html3->clear();
|
|
unset ($html3);
|
|
if ($img == '')
|
|
return 'Daily comic not released yet';
|
|
return '<img src="'.$img.'"/>';
|
|
}
|
|
|
|
public function collectData(array $param){
|
|
function CADUrl($string) {
|
|
$html2 = explode("\"", $string);
|
|
$string = $html2[1];
|
|
if (substr($string,0,4) != 'http')
|
|
return 'notanurl';
|
|
return $string;
|
|
}
|
|
|
|
$html = $this->file_get_html('http://cdn2.cad-comic.com/rss.xml') or $this->returnError('Could not request CAD.', 404);
|
|
$limit = 0;
|
|
|
|
foreach($html->find('item') as $element) {
|
|
if($limit < 5) {
|
|
$item = new \Item();
|
|
$item->title = $element->find('title', 0)->innertext;
|
|
$item->uri = CADUrl($element->find('description', 0)->innertext);
|
|
if ($item->uri != 'notanurl') {
|
|
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
|
|
$item->content = $this->CADExtractContent($item->uri);
|
|
$this->items[] = $item;
|
|
$limit++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function getName(){
|
|
return 'CAD Bridge';
|
|
}
|
|
|
|
public function getURI(){
|
|
return 'http://www.cad-comic.com/';
|
|
}
|
|
|
|
public function getCacheDuration(){
|
|
return 3600*2; // 2 hours
|
|
}
|
|
}
|
|
?>
|