Batch genre calls
This commit is contained in:
parent
61573f4e01
commit
7cb3ca3e58
@ -52,32 +52,35 @@ module.exports = {
|
||||
return interaction.editReply({ embeds: [embed] });
|
||||
}
|
||||
|
||||
const beatGameIGDBEntries = [];
|
||||
const gameIds = [];
|
||||
|
||||
for (let i = 0; i < beatenGamesDatabaseEntries.length; i++) {
|
||||
const game = await checkGameStorageId(beatenGamesDatabaseEntries[i].gameId);
|
||||
const json = await getGameJson(String.prototype.concat('where id = ', game.igdb_id, '; fields *;'));
|
||||
beatGameIGDBEntries.push(json[0]);
|
||||
const game = await checkGameStorageId(beatenGamesDatabaseEntries[i].gameId);
|
||||
gameIds.push(game.igdb_id);
|
||||
}
|
||||
|
||||
const genres = [];
|
||||
const beatGameIGDBEntries = await getGameJson(String.prototype.concat(`where id = (${gameIds}); fields *; limit ${gameIds.length};`));
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -150,17 +150,17 @@ async function getGenres(id) {
|
||||
'Client-ID': `${process.env.igdbClientId}`,
|
||||
'Authorization': `Bearer ${process.env.igdbAccessToken}`,
|
||||
},
|
||||
body: `where id = ${id}; fields *;`,
|
||||
body: `where id = (${id}); fields *; limit ${id.length};`,
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(response => {
|
||||
genre = response[0];
|
||||
genre = response;
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
});
|
||||
|
||||
return genre.name;
|
||||
return genre;
|
||||
}
|
||||
|
||||
async function getFranchise(id) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user