Skip to content

Commit 641d861

Browse files
[FIX] Make sure game is available before auto updating (#2979)
* [FIX] Make sure game is available before auto updating * Update src/backend/storeManagers/index.ts Co-authored-by: Mathis Dröge <[email protected]> * Update main.ts --------- Co-authored-by: Mathis Dröge <[email protected]>
1 parent 6095524 commit 641d861

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

src/backend/main.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
StatusPromise,
88
GamepadInputEvent,
99
WineCommandArgs,
10-
ExecResult
10+
ExecResult,
11+
Runner
1112
} from 'common/types'
1213
import * as path from 'path'
1314
import {
@@ -633,7 +634,7 @@ ipcMain.handle('checkGameUpdates', async (): Promise<string[]> => {
633634
for (const runner in libraryManagerMap) {
634635
let gamesToUpdate = await libraryManagerMap[runner].listUpdateableGames()
635636
if (autoUpdateGames) {
636-
gamesToUpdate = autoUpdate(runner, gamesToUpdate)
637+
gamesToUpdate = autoUpdate(runner as Runner, gamesToUpdate)
637638
}
638639
oldGames = [...oldGames, ...gamesToUpdate]
639640
}

src/backend/storeManagers/index.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ import { GameManager, LibraryManager } from 'common/types/game_manager'
1212
import { logInfo, RunnerToLogPrefixMap } from 'backend/logger/logger'
1313

1414
import { addToQueue } from 'backend/downloadmanager/downloadqueue'
15-
import { DMQueueElement, GameInfo } from 'common/types'
16-
interface GameManagerMap {
17-
[key: string]: GameManager
15+
import { DMQueueElement, GameInfo, Runner } from 'common/types'
16+
import { isGameAvailable } from 'backend/api/helpers'
17+
type GameManagerMap = {
18+
[key in Runner]: GameManager
1819
}
1920

2021
export const gameManagerMap: GameManagerMap = {
@@ -24,8 +25,8 @@ export const gameManagerMap: GameManagerMap = {
2425
nile: NileGameManager
2526
}
2627

27-
interface LibraryManagerMap {
28-
[key: string]: LibraryManager
28+
type LibraryManagerMap = {
29+
[key in Runner]: LibraryManager
2930
}
3031

3132
export const libraryManagerMap: LibraryManagerMap = {
@@ -56,14 +57,14 @@ function getDMElement(gameInfo: GameInfo, appName: string) {
5657
return dmQueueElement
5758
}
5859

59-
export function autoUpdate(runner: string, gamesToUpdate: string[]) {
60+
export function autoUpdate(runner: Runner, gamesToUpdate: string[]) {
6061
const logPrefix = RunnerToLogPrefixMap[runner]
6162
gamesToUpdate.forEach(async (appName) => {
6263
const { ignoreGameUpdates } = await gameManagerMap[runner].getSettings(
6364
appName
6465
)
6566
const gameInfo = gameManagerMap[runner].getGameInfo(appName)
66-
if (!ignoreGameUpdates) {
67+
if (!ignoreGameUpdates && (await isGameAvailable({ appName, runner }))) {
6768
logInfo(`Auto-Updating ${gameInfo.title}`, logPrefix)
6869
const dmQueueElement: DMQueueElement = getDMElement(gameInfo, appName)
6970
addToQueue(dmQueueElement)

0 commit comments

Comments
 (0)