66 lines
1.6 KiB
PHP
66 lines
1.6 KiB
PHP
|
<?php
|
||
|
class GOGBridge extends BridgeAbstract {
|
||
|
|
||
|
const NAME = 'GOGBridge';
|
||
|
const MAINTAINER = 'teromene';
|
||
|
const URI = 'https://gog.com';
|
||
|
const DESCRIPTION = 'Returns the latest releases from GOG.com';
|
||
|
|
||
|
public function collectData() {
|
||
|
|
||
|
$values = getContents('https://www.gog.com/games/ajax/filtered?limit=25&sort=new') or
|
||
|
die('Unable to get the news pages from GOG !');
|
||
|
$decodedValues = json_decode($values);
|
||
|
|
||
|
$limit = 0;
|
||
|
foreach($decodedValues->products as $game) {
|
||
|
|
||
|
$item = array();
|
||
|
$item['author'] = $game->developer . ' / ' . $game->publisher;
|
||
|
$item['title'] = $game->title;
|
||
|
$item['id'] = $game->id;
|
||
|
$item['uri'] = self::URI . $game->url;
|
||
|
$item['content'] = $this->buildGameContentPage($game);
|
||
|
$item['timestamp'] = $game->globalReleaseDate;
|
||
|
|
||
|
foreach($game->gallery as $image) {
|
||
|
$item['enclosures'][] = $image . '.jpg';
|
||
|
}
|
||
|
|
||
|
$this->items[] = $item;
|
||
|
$limit += 1;
|
||
|
|
||
|
if($limit == 10) break;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
private function buildGameContentPage($game) {
|
||
|
|
||
|
$gameDescriptionText = getContents('https://api.gog.com/products/' . $game->id . '?expand=description') or
|
||
|
die('Unable to get game description from GOG !');
|
||
|
|
||
|
$gameDescriptionValue = json_decode($gameDescriptionText);
|
||
|
|
||
|
$content = 'Genres: ';
|
||
|
$content .= implode(', ', $game->genres);
|
||
|
|
||
|
$content .= '<br />Supported Platforms: ';
|
||
|
if($game->worksOn->Windows) {
|
||
|
$content .= 'Windows ';
|
||
|
}
|
||
|
if($game->worksOn->Mac) {
|
||
|
$content .= 'Mac ';
|
||
|
}
|
||
|
if($game->worksOn->Linux) {
|
||
|
$content .= 'Linux ';
|
||
|
}
|
||
|
|
||
|
$content .= '<br />' . $gameDescriptionValue->description->full;
|
||
|
|
||
|
return $content;
|
||
|
|
||
|
}
|
||
|
}
|