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