X-Git-Url: https://git.cweiske.de/stouyapi.git/blobdiff_plain/44491ef1b9b52e4ed4a5f245cbbeef123a436b18..f19759be619ef2263f7724572ddfde14da47ab9a:/bin/import-game-data.php diff --git a/bin/import-game-data.php b/bin/import-game-data.php index 467dac5..0227b45 100755 --- a/bin/import-game-data.php +++ b/bin/import-game-data.php @@ -18,7 +18,8 @@ if (!is_file($foldersFile)) { $GLOBALS['packagelists']['cweiskepicks'] = [ 'de.eiswuxe.blookid2', - 'com.cosmos.babyloniantwins' + 'com.cosmos.babyloniantwins', + 'com.inverseblue.skyriders', ]; $wwwDir = __DIR__ . '/../www/'; @@ -124,6 +125,14 @@ writeJson( buildMakeCategory('Tutorials', filterByGenre($games, 'Tutorials')) ); +$searchLetters = 'abcdefghijklmnopqrstuvwxyz0123456789., '; +foreach (str_split($searchLetters) as $letter) { + $letterGames = filterBySearchWord($games, $letter); + writeJson( + 'api/v1/search-data/' . $letter . '.json', + buildSearch($letterGames) + ); +} function buildDiscover(array $games) @@ -148,13 +157,37 @@ function buildDiscover(array $games) filterByPackageNames($games, $GLOBALS['packagelists']['cweiskepicks']) ); + addDiscoverRow( + $data, 'Special', + [ + 'Best rated', + 'Most rated', + 'Random', + ] + ); + writeJson( + 'api/v1/discover-data/' . categoryPath('Best rated') . '.json', + buildSpecialCategory('Best rated', filterBestRated($games, 99)) + ); + writeJson( + 'api/v1/discover-data/' . categoryPath('Most rated') . '.json', + buildSpecialCategory('Most rated', filterMostDownloaded($games, 99)) + ); + writeJson( + 'api/v1/discover-data/' . categoryPath('Random') . '.json', + buildSpecialCategory( + 'Random ' . date('Y-m-d H:i'), + filterRandom($games, 99) + ) + ); + $players = [ //1 => '1 player', 2 => '2 players', 3 => '3 players', 4 => '4 players', ]; - addDiscoverRow($data, '# of players', $players); + addDiscoverRow($data, 'Multiplayer', $players); foreach ($players as $num => $title) { writeJson( 'api/v1/discover-data/' . categoryPath($title) . '.json', @@ -214,12 +247,7 @@ function buildDiscoverCategory($name, $games) filterBestRated($games, 10) ); - usort( - $games, - function ($gameA, $gameB) { - return strcasecmp($gameA->title, $gameB->title); - } - ); + $games = sortByTitle($games); $chunks = array_chunk($games, 4); foreach ($chunks as $chunkGames) { addDiscoverRow($data, '', $chunkGames); @@ -236,17 +264,31 @@ function buildMakeCategory($name, $games) 'tiles' => [], ]; - usort( - $games, - function ($gameA, $gameB) { - return strcasecmp($gameA->title, $gameB->title); - } - ); + $games = sortByTitle($games); addDiscoverRow($data, '', $games); return $data; } +function buildSpecialCategory($name, $games) +{ + $data = [ + 'title' => $name, + 'rows' => [], + 'tiles' => [], + ]; + + $first3 = array_slice($games, 0, 3); + $chunks = array_chunk(array_slice($games, 3), 4); + array_unshift($chunks, $first3); + + foreach ($chunks as $chunkGames) { + addDiscoverRow($data, '', $chunkGames); + } + + return $data; +} + function buildDiscoverHome(array $games) { //we do not want anything here for now @@ -338,12 +380,13 @@ function buildProduct($product) return null; } return [ - 'type' => 'entitlement', + 'type' => $product->type ?? 'entitlement', 'identifier' => $product->identifier, 'name' => $product->name, 'description' => $product->description ?? '', 'localPrice' => $product->localPrice, 'originalPrice' => $product->originalPrice, + 'priceInCents' => $product->originalPrice * 100, 'percentOff' => 0, 'currency' => $product->currency, ]; @@ -510,8 +553,8 @@ function buildPurchases($game) 'purchaseDate' => time() * 1000, 'generateDate' => time() * 1000, 'identifier' => $promotedProduct->identifier, - 'gamer' => 'stouyapi', - 'uuid' => '00702342-0000-1111-2222-c3e1500cafe2',//gamer uuid + 'gamer' => '00702342-0000-1111-2222-c3e1500cafe2',//gamer uuid + 'uuid' => '00702342-0000-1111-2222-c3e1500beef3',//transaction ID 'priceInCents' => $promotedProduct->originalPrice * 100, 'localPrice' => $promotedProduct->localPrice, 'currency' => $promotedProduct->currency, @@ -523,6 +566,23 @@ function buildPurchases($game) return $encryptedTwice; } +function buildSearch($games) +{ + $games = sortByTitle($games); + $results = []; + foreach ($games as $game) { + $results[] = [ + 'title' => $game->title, + 'url' => 'ouya://launcher/details?app=' . $game->packageName, + 'contentRating' => $game->contentRating, + ]; + } + return [ + 'count' => count($results), + 'results' => $results, + ]; +} + function dummyEncrypt($data) { return [ @@ -633,7 +693,7 @@ function buildDiscoverGameTile($game) function categoryPath($title) { - return str_replace(['/', '\\', ' ', '+'], '_', $title); + return str_replace(['/', '\\', ' ', '+', '?'], '_', $title); } function getAllAges($games)