From ed666350a734bd9e96f4879de19b31f584a7fb48 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Tue, 21 Jan 2020 22:02:03 +0100 Subject: [PATCH] New categories --- bin/filters.php | 23 ++++++++++++++++++++ bin/import-game-data.php | 45 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/bin/filters.php b/bin/filters.php index 628936a..a10777a 100644 --- a/bin/filters.php +++ b/bin/filters.php @@ -102,6 +102,29 @@ function filterBestRated($origGames, $limit) return array_slice($games, 0, $limit); } +function filterMostDownloaded($origGames, $limit) +{ + $games = array_values($origGames); + usort( + $games, + function ($gameA, $gameB) { + return $gameB->rating->count - $gameA->rating->count; + } + ); + + return array_slice($games, 0, $limit); +} + +function filterRandom($origGames, $limit) +{ + $randKeys = array_rand($origGames, $limit); + $games = []; + foreach ($randKeys as $key) { + $games[] = $origGames[$key]; + } + return $games; +} + function sortByTitle($games) { usort( diff --git a/bin/import-game-data.php b/bin/import-game-data.php index fba427d..1eb783c 100755 --- a/bin/import-game-data.php +++ b/bin/import-game-data.php @@ -157,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', @@ -246,6 +270,25 @@ function buildMakeCategory($name, $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 -- 2.30.2