2014-03-26 16:22:31 +01:00
|
|
|
<?php
|
2016-09-10 19:11:09 +02:00
|
|
|
class WorldOfTanksBridge extends BridgeAbstract {
|
2015-11-05 16:50:18 +01:00
|
|
|
|
2016-08-30 11:23:55 +02:00
|
|
|
const MAINTAINER = "mitsukarenai";
|
|
|
|
const NAME = "World of Tanks";
|
|
|
|
const URI = "http://worldoftanks.eu/";
|
|
|
|
const DESCRIPTION = "News about the tank slaughter game.";
|
2015-11-05 16:50:18 +01:00
|
|
|
|
2016-08-30 11:23:55 +02:00
|
|
|
const PARAMETERS = array( array(
|
2016-08-27 21:03:26 +02:00
|
|
|
'category'=>array(
|
|
|
|
// TODO: should be a list
|
|
|
|
'name'=>'nom de la catégorie'
|
|
|
|
),
|
|
|
|
'lang'=>array(
|
2016-08-22 01:25:56 +02:00
|
|
|
'name'=>'Langue',
|
|
|
|
'type'=>'list',
|
|
|
|
'values'=>array(
|
2016-08-27 21:03:26 +02:00
|
|
|
'Français'=>'fr',
|
|
|
|
'English'=>'en',
|
|
|
|
'Español'=>'es',
|
|
|
|
'Deutsch'=>'de',
|
|
|
|
'Čeština'=>'cs',
|
|
|
|
'Polski'=>'pl',
|
|
|
|
'Türkçe'=>'tr'
|
2016-08-22 01:25:56 +02:00
|
|
|
)
|
2016-08-27 21:03:26 +02:00
|
|
|
)
|
|
|
|
));
|
2015-11-05 16:50:18 +01:00
|
|
|
|
2016-08-30 00:31:59 +02:00
|
|
|
private $title='';
|
|
|
|
|
2016-08-25 17:15:52 +02:00
|
|
|
function getURI(){
|
2016-08-30 00:11:25 +02:00
|
|
|
$lang = $this->getInput('lang');
|
2016-08-30 11:23:55 +02:00
|
|
|
$uri = self::URI.$lang.'/news/';
|
2016-08-28 01:25:33 +02:00
|
|
|
if(!empty($this->getInput('category'))) {
|
|
|
|
$uri .= 'pc-browser/'.$this->getInput('category')."/";
|
2014-03-26 16:22:31 +01:00
|
|
|
}
|
2016-08-25 17:15:52 +02:00
|
|
|
return $uri;
|
|
|
|
}
|
|
|
|
|
2016-08-30 00:31:59 +02:00
|
|
|
public function getName(){
|
2016-08-30 11:23:55 +02:00
|
|
|
return $this->title?:self::NAME;
|
2016-08-30 00:31:59 +02:00
|
|
|
}
|
|
|
|
|
2016-08-25 17:15:52 +02:00
|
|
|
public function collectData(){
|
2016-09-25 23:22:33 +02:00
|
|
|
$html = getSimpleHTMLDOM($this->getURI())
|
|
|
|
or returnServerError('Could not request '.$this->getURI());
|
|
|
|
debugMessage("loaded HTML from ".$this->getURI());
|
2016-07-08 19:06:35 +02:00
|
|
|
// customize name
|
2016-08-30 00:31:59 +02:00
|
|
|
$this->title = $html->find('title', 0)->innertext;
|
2014-03-26 16:22:31 +01:00
|
|
|
foreach($html->find('.b-imgblock_ico') as $infoLink) {
|
|
|
|
$this->parseLine($infoLink);
|
|
|
|
}
|
|
|
|
}
|
2016-07-08 19:06:35 +02:00
|
|
|
|
2016-08-06 16:00:56 +02:00
|
|
|
private function parseLine($infoLink) {
|
2016-08-22 18:55:59 +02:00
|
|
|
$item = array();
|
2016-08-30 11:23:55 +02:00
|
|
|
$item['uri'] = self::URI.$infoLink->href;
|
2014-03-26 16:22:31 +01:00
|
|
|
// now load that uri from cache
|
2016-09-25 23:22:33 +02:00
|
|
|
debugMessage("loading page ".$item['uri']);
|
|
|
|
$articlePage = getSimpleHTMLDOMCached($item['uri']);
|
2014-03-26 16:22:31 +01:00
|
|
|
$content = $articlePage->find('.l-content', 0);
|
2016-08-30 11:23:55 +02:00
|
|
|
HTMLSanitizer::defaultImageSrcTo($content, self::URI);
|
2016-08-22 18:55:59 +02:00
|
|
|
$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");
|
2014-03-26 16:22:31 +01:00
|
|
|
$this->items[] = $item;
|
|
|
|
}
|
|
|
|
}
|