diff --git a/bridges/EtsyBridge.php b/bridges/EtsyBridge.php new file mode 100644 index 0000000..756ab10 --- /dev/null +++ b/bridges/EtsyBridge.php @@ -0,0 +1,83 @@ + array( + 'name' => 'Search query', + 'type' => 'text', + 'required' => true, + 'title' => 'Insert your search term here', + 'exampleValue' => 'Enter your search term' + ), + 'queryextension' => array( + 'name' => 'Query extension', + 'type' => 'text', + 'requied' => false, + 'title' => 'Insert additional query parts here +(anything after ?search=)', + 'exampleValue' => '&explicit=1&locationQuery=2921044' + ), + 'showimage' => array( + 'name' => 'Show image in content', + 'type' => 'checkbox', + 'requrired' => false, + 'title' => 'Activate to show the image in the content', + 'defaultValue' => false + ) + ) + ); + + public function collectData(){ + $html = getSimpleHTMLDOM($this->getURI()) + or returnServerError('Failed to receive ' . $this->getURI()); + + $results = $html->find('div.block-grid-item'); + + foreach($results as $result){ + // Skip banner cards (ads for categories) + if($result->find('a.banner-card')) + continue; + + $item = array(); + + $item['title'] = $result->find('a', 0)->title; + $item['uri'] = $result->find('a', 0)->href; + $item['author'] = $result->find('div.card-shop-name', 0)->plaintext; + + $item['content'] = '

' + . $result->find('div.card-price', 0)->plaintext + . '

' + . $result->find('div.card-title', 0)->plaintext + . '

'; + + $image = $result->find('img.placeholder', 0)->src; + + if($this->getInput('showimage')){ + $item['content'] .= ''; + } + + $item['enclosures'] = array($image); + + $this->items[] = $item; + } + } + + public function getURI(){ + if(!is_null($this->getInput('query'))){ + $uri = self::URI . '/search?q=' . urlencode($this->getInput('query')); + + if(!is_null($this->getInput('queryextension'))){ + $uri .= $this->getInput('queryextension'); + } + + return $uri; + } + + return parent::getURI(); + } +}