$GLOBALS['packagelists']['cweiskepicks'] = [
'de.eiswuxe.blookid2',
- 'com.cosmos.babyloniantwins'
+ 'com.cosmos.babyloniantwins',
+ 'com.inverseblue.skyriders',
];
$wwwDir = __DIR__ . '/../www/';
}
}
+calculateRank($games);
+
foreach ($developers as $developer) {
writeJson(
//index.htm does not need a rewrite rule
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)
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);
'tiles' => [],
];
- usort(
- $games,
- function ($gameA, $gameB) {
- return strcasecmp($gameA->title, $gameB->title);
- }
- );
+ $games = sortByTitle($games);
addDiscoverRow($data, '', $games);
return $data;
'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,
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 [
function categoryPath($title)
{
- return str_replace(['/', '\\', ' ', '+'], '_', $title);
+ return str_replace(['/', '\\', ' ', '+', '?'], '_', $title);
}
function getAllAges($games)
}
}
+/**
+ * Implements a sensible ranking system described in
+ * https://stackoverflow.com/a/1411268/2826013
+ */
+function calculateRank(array $games)
+{
+ $averageRatings = array_map(
+ function ($game) {
+ return $game->rating->average;
+ },
+ $games
+ );
+ $average = array_sum($averageRatings) / count($averageRatings);
+ $C = $average;
+ $m = 500;
+
+ foreach ($games as $game) {
+ $R = $game->rating->average;
+ $v = $game->rating->count;
+ $game->rating->rank = ($R * $v + $C * $m) / ($v + $m);
+ }
+}
+
function getFirstVideoUrl($media)
{
foreach ($media as $medium) {