diff options
Diffstat (limited to 'bridges/ReadComicsBridge.php')
-rw-r--r-- | bridges/ReadComicsBridge.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/bridges/ReadComicsBridge.php b/bridges/ReadComicsBridge.php new file mode 100644 index 0000000..33c8ed9 --- /dev/null +++ b/bridges/ReadComicsBridge.php @@ -0,0 +1,44 @@ +<?php +class ReadComicsBridge extends BridgeAbstract { + + const MAINTAINER = 'niawag'; + const NAME = 'Read Comics'; + const URI = 'http://www.readcomics.tv/'; + const DESCRIPTION = 'Enter the comics as they appear in the website uri, + separated by semicolons, ex: good-comic-1;good-comic-2; ...'; + + const PARAMETERS = array( array( + 'q' => array( + 'name' => 'keywords, separated by semicolons', + 'exampleValue' => 'first list;second list;...', + 'required' => true + ), + )); + + public function collectData(){ + + function parseDateTimestamp($element){ + $guessedDate = $element->find('span', 0)->plaintext; + $guessedDate = strptime($guessedDate, '%m/%d/%Y'); + $timestamp = mktime(0, 0, 0, $guessedDate['tm_mon'] + 1, $guessedDate['tm_mday'], date('Y')); + + return $timestamp; + } + + $keywordsList = explode(";", $this->getInput('q')); + foreach($keywordsList as $keywords) { + $html = $this->getSimpleHTMLDOM(self::URI . 'comic/' . rawurlencode($keywords)) + or $this->returnServerError('Could not request readcomics.tv.'); + + foreach($html->find('li') as $element) { + $item = array(); + $item['uri'] = $element->find('a.ch-name', 0)->href; + $item['id'] = $item['uri']; + $item['timestamp'] = parseDateTimestamp($element); + $item['title'] = $element->find('a.ch-name', 0)->plaintext; + if(isset($item['title'])) + $this->items[] = $item; + } + } + } +} |