Browse Source

[WorldOfTanksBridge] code factorization

Signed-off-by: Pierre Mazière <pierre.maziere@gmx.com>
Pierre Mazière 7 years ago
parent
commit
23a7edebd6
1 changed files with 17 additions and 18 deletions
  1. 17 18
      bridges/WorldOfTanksBridge.php

+ 17 - 18
bridges/WorldOfTanksBridge.php

@@ -1,11 +1,6 @@
 <?php
-define('WORLD_OF_TANKS', 'http://worldoftanks.eu/');
-define('NEWS', '/news/');
 class WorldOfTanksBridge extends HttpCachingBridgeAbstract{
 
-    private $lang = "fr";
-    public $uri = WORLD_OF_TANKS;
-
 	public function loadMetadatas() {
 
 		$this->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{
         );
 	}
 
-
-    public function collectData(){
+    function getURI(){
         $param=$this->parameters[$this->queriedContext];
+        $lang='fr';
         if (!empty($param['lang']['value'])) {
-            $this->lang = $param['lang']['value'];
+            $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']."/";
+
+        $uri = $this->uri.$lang.'/news/';
+        if(!empty($param['category']['value'])) {
+            $uri .= 'pc-browser/'.$param['category']['value']."/";
         }
+        return $uri;
+    }
+
+    public function collectData(){
         $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");