From a5b0e2a24fb0b0709629869f63c4fe3a38b5a426 Mon Sep 17 00:00:00 2001 From: Alexis CHEMEL Date: Tue, 13 Dec 2016 00:43:38 +0100 Subject: [PATCH] [AmazonBridge] Adding country list box #447 --- bridges/AmazonBridge.php | 50 +++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/bridges/AmazonBridge.php b/bridges/AmazonBridge.php index 648f1da2..5dbef299 100644 --- a/bridges/AmazonBridge.php +++ b/bridges/AmazonBridge.php @@ -2,11 +2,11 @@ class AmazonBridge extends BridgeAbstract { - const MAINTAINER = "Alexis CHEMEL"; - const NAME = "Amazon"; - const URI = "https://www.amazon.fr/"; + const MAINTAINER = 'Alexis CHEMEL'; + const NAME = 'Amazon'; + const URI = 'https://www.amazon.com/'; const CACHE_TIMEOUT = 3600; // 1h - const DESCRIPTION = "Returns products from Amazon search"; + const DESCRIPTION = 'Returns products from Amazon search'; const PARAMETERS = array(array( 'q' => array( @@ -19,26 +19,48 @@ class AmazonBridge extends BridgeAbstract { 'required' => false, 'values' => array( 'Relevance' => 'relevanceblender', - 'Popularity' => 'popularity-rank', - 'Price : in ascending order' => 'price-asc-rank', - 'Price : in descending order' => 'price-desc-rank', - 'Average rating' => 'review-rank', - 'Newest item' => 'date-desc-rank', + 'Price: Low to High' => 'price-asc-rank', + 'Price: High to Low' => 'price-desc-rank', + 'Average Customer Review' => 'review-rank', + 'Newest Arrivals' => 'date-desc-rank', ), - 'defaultValue' => 'popularity-rank', - ) + 'defaultValue' => 'relevanceblender', + ), + 'tld' => array( + 'name' => 'Country', + 'type' => 'list', + 'required' => true, + 'values' => array( + 'Australia' => 'com.au', + 'Brazil' => 'com.br', + 'Canada' => 'ca', + 'China' => 'cn', + 'France' => 'fr', + 'Germany' => 'de', + 'India' => 'in', + 'Italy' => 'it', + 'Japan' => 'co.jp', + 'Mexico' => 'com.mx', + 'Netherlands' => 'nl', + 'Spain' => 'es', + 'United Kingdom' => 'co.uk', + 'United States' => 'com', + ), + 'defaultValue' => 'com', + ), )); public function getName(){ - return 'Amazon - '.$this->getInput('q'); + return 'Amazon.'.$this->getInput('tld').': '.$this->getInput('q'); } public function collectData() { - $url = self::URI.'s/?field-keywords='.urlencode($this->getInput('q')).'&sort='.$this->getInput('sort'); + $uri = 'https://www.amazon.'.$this->getInput('tld').'/'; + $uri .= 's/?field-keywords='.urlencode($this->getInput('q')).'&sort='.$this->getInput('sort'); - $html = getSimpleHTMLDOM($url) + $html = getSimpleHTMLDOM($uri) or returnServerError('Could not request Amazon.'); foreach($html->find('li.s-result-item') as $element) {