From 23a7edebd629b4c60aa456323c92a4f966f0a7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20Mazi=C3=A8re?= Date: Thu, 25 Aug 2016 17:15:52 +0200 Subject: [PATCH] [WorldOfTanksBridge] code factorization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pierre Mazière --- bridges/WorldOfTanksBridge.php | 39 +++++++++++++++++----------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/bridges/WorldOfTanksBridge.php b/bridges/WorldOfTanksBridge.php index 09ffb75..98f27bf 100644 --- a/bridges/WorldOfTanksBridge.php +++ b/bridges/WorldOfTanksBridge.php @@ -1,11 +1,6 @@ maintainer = "mitsukarenai"; @@ -14,10 +9,10 @@ class WorldOfTanksBridge extends HttpCachingBridgeAbstract{ $this->description = "News about the tank slaughter game."; $this->parameters[] = array( - 'category'=>array( - 'name'=>'ID de la catégorie', - 'type'=>'number' - ), + 'category'=>array( + // TODO: should be a list + 'name'=>'nom de la catégorie' + ), 'lang'=>array( 'name'=>'Langue', 'type'=>'list', @@ -34,17 +29,21 @@ class WorldOfTanksBridge extends HttpCachingBridgeAbstract{ ); } + function getURI(){ + $param=$this->parameters[$this->queriedContext]; + $lang='fr'; + if (!empty($param['lang']['value'])) { + $lang = $param['lang']['value']; + } + + $uri = $this->uri.$lang.'/news/'; + if(!empty($param['category']['value'])) { + $uri .= 'pc-browser/'.$param['category']['value']."/"; + } + return $uri; + } public function collectData(){ - $param=$this->parameters[$this->queriedContext]; - if (!empty($param['lang']['value'])) { - $this->lang = $param['lang']['value']; - } - if(empty($param['category']['value'])) { - $this->uri = WORLD_OF_TANKS.$this->lang.NEWS; - } else { - $this->uri = WORLD_OF_TANKS.$this->lang.NEWS.'pc-browser/'.$param['category']['value']."/"; - } $html = $this->getSimpleHTMLDOM($this->getURI()) or $this->returnServerError('Could not request '.$this->getURI()); $this->debugMessage("loaded HTML from ".$this->getURI()); // customize name @@ -56,12 +55,12 @@ class WorldOfTanksBridge extends HttpCachingBridgeAbstract{ private function parseLine($infoLink) { $item = array(); - $item['uri'] = WORLD_OF_TANKS.$infoLink->href; + $item['uri'] = $this->uri.$infoLink->href; // now load that uri from cache $this->debugMessage("loading page ".$item['uri']); $articlePage = str_get_html($this->get_cached($item['uri'])); $content = $articlePage->find('.l-content', 0); - HTMLSanitizer::defaultImageSrcTo($content, WORLD_OF_TANKS); + HTMLSanitizer::defaultImageSrcTo($content, $this->uri); $item['title'] = $content->find('h1', 0)->innertext; $item['content'] = $content->find('.b-content', 0)->innertext; $item['timestamp'] = $content->find('.b-statistic_time', 0)->getAttribute("data-timestamp");