5ad157d2fd
BridgeAbstract will return 3600 seconds by default, so the function can be removed from any bridge implementing getCacheDuration returning the same value. Documentation updated accordingly.
104 lines
2.7 KiB
PHP
104 lines
2.7 KiB
PHP
<?php
|
|
define('WORLD_OF_TANKS', 'http://worldoftanks.eu/');
|
|
define('NEWS', '/news/');
|
|
class WorldOfTanks extends HttpCachingBridgeAbstract{
|
|
|
|
private $lang = "fr";
|
|
public $uri = WORLD_OF_TANKS;
|
|
|
|
public function loadMetadatas() {
|
|
|
|
$this->maintainer = "mitsukarenai";
|
|
$this->name = "World of Tanks";
|
|
$this->uri = "http://worldoftanks.eu/";
|
|
$this->description = "News about the tank slaughter game.";
|
|
$this->update = "2016-08-06";
|
|
|
|
$this->parameters[] =
|
|
'[
|
|
{
|
|
"name" : "ID de la catégorie",
|
|
"type" : "number",
|
|
"identifier" : "category"
|
|
},
|
|
{
|
|
"name" : "Langue",
|
|
"identifier" : "lang",
|
|
"type" : "list",
|
|
"values" : [
|
|
{
|
|
"name" : "Français",
|
|
"value" : "fr"
|
|
},
|
|
{
|
|
"name" : "English",
|
|
"value" : "en"
|
|
},
|
|
{
|
|
"name" : "Español",
|
|
"value" : "es"
|
|
},
|
|
{
|
|
"name" : "Deutsch",
|
|
"value" : "de"
|
|
},
|
|
{
|
|
"name" : "Čeština",
|
|
"value" : "cs"
|
|
},
|
|
{
|
|
"name" : "Polski",
|
|
"value" : "pl"
|
|
},
|
|
{
|
|
"name" : "Türkçe",
|
|
"value" : "tr"
|
|
}
|
|
]
|
|
|
|
}
|
|
]';
|
|
}
|
|
|
|
|
|
public function collectData(array $param){
|
|
if (!empty($param['lang'])) {
|
|
$this->lang = $param['lang'];
|
|
}
|
|
if(empty($param['category'])) {
|
|
$this->uri = WORLD_OF_TANKS.$this->lang.NEWS;
|
|
} else {
|
|
$this->uri = WORLD_OF_TANKS.$this->lang.NEWS.'pc-browser/'.$param['category']."/";
|
|
}
|
|
$html = $this->file_get_html($this->getURI()) or $this->returnError('Could not request '.$this->getURI(), 404);
|
|
$this->message("loaded HTML from ".$this->getURI());
|
|
// customize name
|
|
$this->name = $html->find('title', 0)->innertext;
|
|
foreach($html->find('.b-imgblock_ico') as $infoLink) {
|
|
$this->parseLine($infoLink);
|
|
}
|
|
}
|
|
|
|
private function parseLine($infoLink) {
|
|
$item = new Item();
|
|
$item->uri = WORLD_OF_TANKS.$infoLink->href;
|
|
// now load that uri from cache
|
|
// $this->message("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);
|
|
$item->title = $content->find('h1', 0)->innertext;
|
|
$item->content = $content->find('.b-content', 0)->innertext;
|
|
// $item->name = $auteur->innertext;
|
|
$item->timestamp = $content->find('.b-statistic_time', 0)->getAttribute("data-timestamp");
|
|
$this->items[] = $item;
|
|
}
|
|
|
|
public function getName(){
|
|
return $this->name;
|
|
}
|
|
|
|
public function getURI(){
|
|
return $this->uri;
|
|
}
|
|
}
|