From 0759813ed58f6fa365f7925a660011b78d1b4a67 Mon Sep 17 00:00:00 2001 From: Zamitto Date: Sat, 27 Apr 2024 22:04:42 -0300 Subject: [PATCH] refactor get-random-game --- src/main/events/catalogue/get-random-game.ts | 38 ++++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/main/events/catalogue/get-random-game.ts b/src/main/events/catalogue/get-random-game.ts index d3f82590..82a7966b 100644 --- a/src/main/events/catalogue/get-random-game.ts +++ b/src/main/events/catalogue/get-random-game.ts @@ -4,37 +4,35 @@ import { Steam250Game, getSteam250List } from "@main/services"; import { registerEvent } from "../register-event"; import { searchGames, searchRepacks } from "../helpers/search-games"; -import { formatName } from "@main/helpers"; let gamesList: Steam250Game[] = []; let nextGameIndex = 0; const getRandomGame = async (_event: Electron.IpcMainInvokeEvent) => { if (gamesList.length == 0) { - console.log("fetching steam 250 pages"); - gamesList = shuffle(await getSteam250List()); - } else { - console.log("getting cached list"); + const steam250List = await getSteam250List(); + + const filteredSteam250List = steam250List.filter((game) => { + const repacks = searchRepacks(game.title); + const catalogue = searchGames({ query: game.title }); + + return repacks.length && catalogue.length; + }); + + gamesList = shuffle(filteredSteam250List); } - let resultObjectId = ""; + if (gamesList.length == 0) { + return ""; + } - while (!resultObjectId) { - const nextGame = gamesList[nextGameIndex]; - const repacks = searchRepacks(formatName(nextGame.title)); + const resultObjectId = gamesList[nextGameIndex].objectID; - if (repacks.length) { - const catalogueResults = await searchGames({ query: nextGame.title }); - if (catalogueResults.length) { - resultObjectId = nextGame.objectID; - } - } - nextGameIndex += 1; + nextGameIndex += 1; - if (nextGameIndex == gamesList.length) { - nextGameIndex = 0; - gamesList = shuffle(gamesList); - } + if (nextGameIndex == gamesList.length) { + nextGameIndex = 0; + gamesList = shuffle(gamesList); } return resultObjectId;