diff options
Diffstat (limited to 'bridges/BandcampBridge.php')
-rw-r--r-- | bridges/BandcampBridge.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/bridges/BandcampBridge.php b/bridges/BandcampBridge.php new file mode 100644 index 0000000..0527da0 --- /dev/null +++ b/bridges/BandcampBridge.php @@ -0,0 +1,63 @@ +<?php +class BandcampBridge extends BridgeAbstract { + + const MAINTAINER = 'sebsauvage'; + const NAME = 'Bandcamp Tag'; + const URI = 'https://bandcamp.com/'; + const CACHE_TIMEOUT = 600; // 10min + const DESCRIPTION = 'New bandcamp release by tag'; + const PARAMETERS = array( array( + 'tag' => array( + 'name' => 'tag', + 'type' => 'text', + 'required' => true + ) + )); + + public function collectData(){ + $html = getSimpleHTMLDOM($this->getURI()) + or returnServerError('No results for this query.'); + + foreach($html->find('li.item') as $release) { + $script = $release->find('div.art', 0)->getAttribute('onclick'); + $uri = ltrim($script, "return 'url("); + $uri = rtrim($uri, "')"); + + $item = array(); + $item['author'] = $release->find('div.itemsubtext', 0)->plaintext + . ' - ' + . $release->find('div.itemtext', 0)->plaintext; + + $item['title'] = $release->find('div.itemsubtext', 0)->plaintext + . ' - ' + . $release->find('div.itemtext', 0)->plaintext; + + $item['content'] = '<img src="' + . $uri + . '"/><br/>' + . $release->find('div.itemsubtext', 0)->plaintext + . ' - ' + . $release->find('div.itemtext', 0)->plaintext; + + $item['id'] = $release->find('a', 0)->getAttribute('href'); + $item['uri'] = $release->find('a', 0)->getAttribute('href'); + $this->items[] = $item; + } + } + + public function getURI(){ + if(!is_null($this->getInput('tag'))) { + return self::URI . 'tag/' . urlencode($this->getInput('tag')) . '?sort_field=date'; + } + + return parent::getURI(); + } + + public function getName(){ + if(!is_null($this->getInput('tag'))) { + return $this->getInput('tag') . ' - Bandcamp Tag'; + } + + return parent::getName(); + } +} |