Compare commits

..

No commits in common. "e01dfd8291559d9755fbaca35b245ebfde630679" and "61573f4e01284dcf6bce15797fe0e69978118e2f" have entirely different histories.

3 changed files with 36 additions and 40 deletions

View File

@ -52,34 +52,32 @@ module.exports = {
return interaction.editReply({ embeds: [embed] }); return interaction.editReply({ embeds: [embed] });
} }
const gameIds = []; const beatGameIGDBEntries = [];
for (let i = 0; i < beatenGamesDatabaseEntries.length; i++) { for (let i = 0; i < beatenGamesDatabaseEntries.length; i++) {
const game = await checkGameStorageId(beatenGamesDatabaseEntries[i].gameId); const game = await checkGameStorageId(beatenGamesDatabaseEntries[i].gameId);
gameIds.push(game.igdb_id); const json = await getGameJson(String.prototype.concat('where id = ', game.igdb_id, '; fields *;'));
beatGameIGDBEntries.push(json[0]);
} }
const beatGameIGDBEntries = await getGameJson(String.prototype.concat(`where id = (${gameIds}); fields *; limit ${gameIds.length};`));
const counts = [];
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]);
}
}
}
const genresinfo = await getGenres([...cachedGenres]);
const genres = []; const genres = [];
const counts = [];
const cachedGenres = new Map();
for (let i = 0; i < beatGameIGDBEntries.length; i++) { for (let i = 0; i < beatGameIGDBEntries.length; i++) {
if (beatGameIGDBEntries[i].genres) { if (beatGameIGDBEntries[i].genres) {
for (let j = 0; j < beatGameIGDBEntries[i].genres.length; j++) { for (let j = 0; j < beatGameIGDBEntries[i].genres.length; j++) {
genres.push(genresinfo.find(item => item.id === beatGameIGDBEntries[i].genres[j]).name);
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);
}
} }
} }
} }

View File

@ -103,14 +103,13 @@ async function GetBeatenGamesForYear(userDatabaseEntry, year) {
} }
async function GetIGDBEntries(array) { async function GetIGDBEntries(array) {
const gameIds = []; beatGameIGDBEntries = [];
for (let i = 0; i < array.length; i++) { for (let i = 0; i < array.length; i++) {
const game = await checkGameStorageId(array[i].gameId); const game = await checkGameStorageId(array[i].gameId);
gameIds.push(game.igdb_id); const json = await getGameJson(String.prototype.concat('where id = ', game.igdb_id, '; fields *;'));
beatGameIGDBEntries.push(json[0]);
} }
beatGameIGDBEntries = await getGameJson(String.prototype.concat(`where id = (${gameIds}); fields *; limit ${gameIds.length};`));
} }
async function GetDevelopers() { async function GetDevelopers() {
@ -258,25 +257,24 @@ async function GetAverageGameAge() {
} }
async function GetFavouriteGenres() { async function GetFavouriteGenres() {
const counts = [];
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]);
}
}
}
const genresinfo = await getGenres([...cachedGenres]);
const genres = []; const genres = [];
const counts = [];
const cachedGenres = new Map();
for (let i = 0; i < beatGameIGDBEntries.length; i++) { for (let i = 0; i < beatGameIGDBEntries.length; i++) {
if (beatGameIGDBEntries[i].genres) { if (beatGameIGDBEntries[i].genres) {
for (let j = 0; j < beatGameIGDBEntries[i].genres.length; j++) { for (let j = 0; j < beatGameIGDBEntries[i].genres.length; j++) {
genres.push(genresinfo.find(item => item.id === beatGameIGDBEntries[i].genres[j]).name);
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);
}
} }
} }
} }

View File

@ -150,17 +150,17 @@ async function getGenres(id) {
'Client-ID': `${process.env.igdbClientId}`, 'Client-ID': `${process.env.igdbClientId}`,
'Authorization': `Bearer ${process.env.igdbAccessToken}`, 'Authorization': `Bearer ${process.env.igdbAccessToken}`,
}, },
body: `where id = (${id}); fields *; limit ${id.length};`, body: `where id = ${id}; fields *;`,
}) })
.then(response => response.json()) .then(response => response.json())
.then(response => { .then(response => {
genre = response; genre = response[0];
}) })
.catch(err => { .catch(err => {
console.error(err); console.error(err);
}); });
return genre; return genre.name;
} }
async function getFranchise(id) { async function getFranchise(id) {