diff options
Diffstat (limited to 'bridges/CADBridge.php')
-rw-r--r-- | bridges/CADBridge.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/bridges/CADBridge.php b/bridges/CADBridge.php new file mode 100644 index 0000000..09e3e65 --- /dev/null +++ b/bridges/CADBridge.php @@ -0,0 +1,45 @@ +<?php +class CADBridge extends FeedExpander { + const MAINTAINER = 'nyutag'; + const NAME = 'CAD Bridge'; + const URI = 'http://www.cad-comic.com/'; + const CACHE_TIMEOUT = 7200; //2h + const DESCRIPTION = 'Returns the newest articles.'; + + public function collectData(){ + $this->collectExpandableDatas('http://cdn2.cad-comic.com/rss.xml', 10); + } + + protected function parseItem($newsItem){ + $item = parent::parseItem($newsItem); + $item['content'] = $this->extractCADContent($item['uri']); + return $item; + } + + private function extractCADContent($url) { + $html3 = getSimpleHTMLDOMCached($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 . '"/>'; + } +} |