Add genre caching to wrapped

This commit is contained in:
baz 2025-05-13 20:34:41 +01:00
parent 4a651dc6c5
commit 97903c02e7

View File

@ -14,6 +14,7 @@ module.exports = {
.addIntegerOption(option => option.setName('year').setDescription('The year to check').addChoices({ name: '2024', value: 2024 }, { name: '2025', value: 2025 })),
async execute(interaction) {
await interaction.deferReply();
let user = interaction.user;
@ -258,14 +259,25 @@ async function GetAverageGameAge() {
async function GetFavouriteGenres() {
const genres = [];
const counts = [];
const cachedGenres = new Map();
for (let i = 0; i < beatGameIGDBEntries.length; i++) {
if (beatGameIGDBEntries[i].genres) {
for (let j = 0; j < beatGameIGDBEntries[i].genres.length; 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);
}
}
}
}
genres.forEach(item => {
counts[item] = (counts[item] || 0) + 1;