X-Git-Url: https://git.cweiske.de/stouyapi.git/blobdiff_plain/a024069a16899b275e1e728d01ba6adace313d63..844c54b0c323cb1cbbe0f5b0d5ec8724be49eed4:/bin/import-game-data.php diff --git a/bin/import-game-data.php b/bin/import-game-data.php index 422b802..e90ccc9 100755 --- a/bin/import-game-data.php +++ b/bin/import-game-data.php @@ -7,6 +7,7 @@ * @author Christian Weiske */ ini_set('xdebug.halt_level', E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE); +require_once __DIR__ . '/functions.php'; require_once __DIR__ . '/filters.php'; if (!isset($argv[1])) { error('Pass the path to a "folders" file with game data json files folder names'); @@ -16,11 +17,13 @@ if (!is_file($foldersFile)) { error('Given path is not a file: ' . $foldersFile); } -$GLOBALS['packagelists']['cweiskepicks'] = [ - 'de.eiswuxe.blookid2', - 'com.cosmos.babyloniantwins', - 'com.inverseblue.skyriders', -]; +//default configuration values +$GLOBALS['packagelists'] = []; +$GLOBALS['urlRewrites'] = []; +$cfgFile = __DIR__ . '/../config.php'; +if (file_exists($cfgFile)) { + include $cfgFile; +} $wwwDir = __DIR__ . '/../www/'; @@ -152,10 +155,13 @@ function buildDiscover(array $games) $data, 'Best rated', filterBestRated($games, 10) ); - addDiscoverRow( - $data, "cweiske's picks", - filterByPackageNames($games, $GLOBALS['packagelists']['cweiskepicks']) - ); + + foreach ($GLOBALS['packagelists'] as $listTitle => $listPackageNames) { + addDiscoverRow( + $data, $listTitle, + filterByPackageNames($games, $listPackageNames) + ); + } addDiscoverRow( $data, 'Special', @@ -369,7 +375,7 @@ function buildAppDownload($game, $release) 'fileSize' => $release->size, 'version' => $release->uuid, 'contentRating' => $game->contentRating, - 'downloadLink' => $release->url, + 'downloadLink' => rewriteUrl($release->url), ] ]; } @@ -414,7 +420,7 @@ function buildDetails($game) $mediaTiles[] = [ 'type' => 'image', 'urls' => [ - 'thumbnail' => $medium->thumb, + 'thumbnail' => $medium->thumb ?? $medium->url, 'full' => $medium->url, ], ]; @@ -443,6 +449,13 @@ function buildDetails($game) $product = buildProduct($gamePromoted); } + $iaUrl = null; + if (isset($game->latestRelease->url) + && substr($game->latestRelease->url, 0, 29) == 'https://archive.org/download/' + ) { + $iaUrl = dirname($game->latestRelease->url) . '/'; + } + // http://cweiske.de/ouya-store-api-docs.htm#get-https-devs-ouya-tv-api-v1-details return [ 'type' => 'Game', @@ -501,6 +514,11 @@ function buildDetails($game) 'promotedProduct' => $product, 'buttons' => $buttons, + + 'stouyapi' => [ + 'internet-archive' => $iaUrl, + 'developer-url' => $game->developer->website ?? null, + ] ]; } @@ -693,11 +711,6 @@ function buildDiscoverGameTile($game) ]; } -function categoryPath($title) -{ - return str_replace(['/', '\\', ' ', '+', '?'], '_', $title); -} - function getAllAges($games) { $ages = []; @@ -880,6 +893,14 @@ function removeMakeGenres($genres) return $filtered; } +function rewriteUrl($url) +{ + foreach ($GLOBALS['urlRewrites'] as $pattern => $replacement) { + $url = preg_replace($pattern, $replacement, $url); + } + return $url; +} + function writeJson($path, $data) { global $wwwDir;