From e01dfd8291559d9755fbaca35b245ebfde630679 Mon Sep 17 00:00:00 2001 From: baz Date: Tue, 13 May 2025 23:52:39 +0100 Subject: [PATCH] Add initial batching to wrapped --- commands/100-games/chartgamegenres.js | 1 - commands/100-games/wrapped.js | 32 ++++++++++++++------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/commands/100-games/chartgamegenres.js b/commands/100-games/chartgamegenres.js index 33f1840..b040bcb 100644 --- a/commands/100-games/chartgamegenres.js +++ b/commands/100-games/chartgamegenres.js @@ -72,7 +72,6 @@ module.exports = { } } - const genresinfo = await getGenres([...cachedGenres]); const genres = []; diff --git a/commands/100-games/wrapped.js b/commands/100-games/wrapped.js index 6b3fa5a..96b7583 100644 --- a/commands/100-games/wrapped.js +++ b/commands/100-games/wrapped.js @@ -103,13 +103,14 @@ async function GetBeatenGamesForYear(userDatabaseEntry, year) { } async function GetIGDBEntries(array) { - beatGameIGDBEntries = []; + const gameIds = []; for (let i = 0; i < array.length; i++) { const game = await checkGameStorageId(array[i].gameId); - const json = await getGameJson(String.prototype.concat('where id = ', game.igdb_id, '; fields *;')); - beatGameIGDBEntries.push(json[0]); + gameIds.push(game.igdb_id); } + + beatGameIGDBEntries = await getGameJson(String.prototype.concat(`where id = (${gameIds}); fields *; limit ${gameIds.length};`)); } async function GetDevelopers() { @@ -257,24 +258,25 @@ async function GetAverageGameAge() { } async function GetFavouriteGenres() { - const genres = []; const counts = []; - const cachedGenres = new Map(); + const cachedGenres = new Set(); for (let i = 0; i < beatGameIGDBEntries.length; i++) { if (beatGameIGDBEntries[i].genres) { for (let j = 0; j < beatGameIGDBEntries[i].genres.length; j++) { + cachedGenres.add(beatGameIGDBEntries[i].genres[j]); + } + } + } - if (cachedGenres.has(beatGameIGDBEntries[i].genres[j])) - { - genres.push(cachedGenres.get(beatGameIGDBEntries[i].genres[j])); - } - else - { - const genre = await getGenres(beatGameIGDBEntries[i].genres[j]); - cachedGenres.set(beatGameIGDBEntries[i].genres[j], genre); - genres.push(genre); - } + const genresinfo = await getGenres([...cachedGenres]); + + const genres = []; + + for (let i = 0; i < beatGameIGDBEntries.length; i++) { + if (beatGameIGDBEntries[i].genres) { + for (let j = 0; j < beatGameIGDBEntries[i].genres.length; j++) { + genres.push(genresinfo.find(item => item.id === beatGameIGDBEntries[i].genres[j]).name); } } }