From 1171e95b871959ddf3cc7af3d66f3a48ed76f844 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Thu, 30 May 2024 00:40:39 +0100 Subject: [PATCH] fix: fixing stale downloads not resetting --- src/locales/en/translation.json | 2 +- src/locales/pt/translation.json | 2 +- src/main/events/library/remove-game.ts | 3 +-- .../events/torrenting/start-game-download.ts | 5 +++- src/preload/index.ts | 1 + src/renderer/src/declaration.d.ts | 1 + src/renderer/src/hooks/use-download.ts | 24 ++++++++++--------- .../src/pages/downloads/downloads.tsx | 8 +++---- 8 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 74224fbc..12e15976 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -123,7 +123,7 @@ "verifying": "Verifying…", "completed_at": "Completed in {{date}}", "completed": "Completed", - "removed": "Cancelled", + "removed": "Not downloaded", "download_again": "Download again", "cancel": "Cancel", "filter": "Filter downloaded games", diff --git a/src/locales/pt/translation.json b/src/locales/pt/translation.json index 37565fa3..858b5f81 100644 --- a/src/locales/pt/translation.json +++ b/src/locales/pt/translation.json @@ -119,7 +119,7 @@ "verifying": "Verificando…", "completed_at": "Concluído em {{date}}", "completed": "Concluído", - "removed": "Cancelado", + "removed": "Não baixado", "download_again": "Baixar novamente", "cancel": "Cancelar", "filter": "Filtrar jogos baixados", diff --git a/src/main/events/library/remove-game.ts b/src/main/events/library/remove-game.ts index 54bf66b8..687366c5 100644 --- a/src/main/events/library/remove-game.ts +++ b/src/main/events/library/remove-game.ts @@ -8,10 +8,9 @@ const removeGame = async ( await gameRepository.update( { id: gameId, - status: "removed", }, { - status: null, + status: "removed", downloadPath: null, bytesDownloaded: 0, progress: 0, diff --git a/src/main/events/torrenting/start-game-download.ts b/src/main/events/torrenting/start-game-download.ts index bf9e0325..c52ccb35 100644 --- a/src/main/events/torrenting/start-game-download.ts +++ b/src/main/events/torrenting/start-game-download.ts @@ -18,6 +18,7 @@ const startGameDownload = async ( gameRepository.findOne({ where: { objectID, + shop, }, relations: { repack: true }, }), @@ -28,7 +29,7 @@ const startGameDownload = async ( }), ]); - if (!repack || game?.status === "active") return; + if (!repack) return; await DownloadManager.pauseDownload(); @@ -44,6 +45,8 @@ const startGameDownload = async ( }, { status: "active", + progress: 0, + bytesDownloaded: 0, downloadPath, downloader, repack: { id: repackId }, diff --git a/src/preload/index.ts b/src/preload/index.ts index da3dfe20..74f2e767 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -74,6 +74,7 @@ contextBridge.exposeInMainWorld("electron", { closeGame: (gameId: number) => ipcRenderer.invoke("closeGame", gameId), removeGameFromLibrary: (gameId: number) => ipcRenderer.invoke("removeGameFromLibrary", gameId), + removeGame: (gameId: number) => ipcRenderer.invoke("removeGame", gameId), deleteGameFolder: (gameId: number) => ipcRenderer.invoke("deleteGameFolder", gameId), getGameByObjectID: (objectID: string) => diff --git a/src/renderer/src/declaration.d.ts b/src/renderer/src/declaration.d.ts index edc9bcb9..a6cd6a03 100644 --- a/src/renderer/src/declaration.d.ts +++ b/src/renderer/src/declaration.d.ts @@ -63,6 +63,7 @@ declare global { openGame: (gameId: number, executablePath: string) => Promise; closeGame: (gameId: number) => Promise; removeGameFromLibrary: (gameId: number) => Promise; + removeGame: (gameId: number) => Promise; deleteGameFolder: (gameId: number) => Promise; getGameByObjectID: (objectID: string) => Promise; onPlaytime: (cb: (gameId: number) => void) => () => Electron.IpcRenderer; diff --git a/src/renderer/src/hooks/use-download.ts b/src/renderer/src/hooks/use-download.ts index 6505ec66..93b7fe43 100644 --- a/src/renderer/src/hooks/use-download.ts +++ b/src/renderer/src/hooks/use-download.ts @@ -47,6 +47,18 @@ export function useDownload() { updateLibrary(); }; + const removeGameInstaller = async (gameId: number) => { + dispatch(setGameDeleting(gameId)); + + try { + await window.electron.deleteGameFolder(gameId); + await window.electron.removeGame(gameId); + updateLibrary(); + } finally { + dispatch(removeGameFromDeleting(gameId)); + } + }; + const removeGameFromLibrary = (gameId: number) => window.electron.removeGameFromLibrary(gameId).then(() => { updateLibrary(); @@ -66,16 +78,6 @@ export function useDownload() { } }; - const deleteGame = async (gameId: number) => { - dispatch(setGameDeleting(gameId)); - - try { - await window.electron.deleteGameFolder(gameId); - } finally { - dispatch(removeGameFromDeleting(gameId)); - } - }; - const isGameDeleting = (gameId: number) => { return gamesWithDeletionInProgress.includes(gameId); }; @@ -90,7 +92,7 @@ export function useDownload() { resumeDownload, cancelDownload, removeGameFromLibrary, - deleteGame, + removeGameInstaller, isGameDeleting, clearDownload: () => dispatch(clearDownload()), setLastPacket: (packet: DownloadProgress) => diff --git a/src/renderer/src/pages/downloads/downloads.tsx b/src/renderer/src/pages/downloads/downloads.tsx index 028d3318..e3e221e1 100644 --- a/src/renderer/src/pages/downloads/downloads.tsx +++ b/src/renderer/src/pages/downloads/downloads.tsx @@ -41,7 +41,7 @@ export function Downloads() { resumeDownload, removeGameFromLibrary, cancelDownload, - deleteGame, + removeGameInstaller, isGameDeleting, } = useDownload(); @@ -224,10 +224,8 @@ export function Downloads() { }; const handleDeleteGame = async () => { - if (gameToBeDeleted.current) { - await deleteGame(gameToBeDeleted.current); - await removeGameFromLibrary(gameToBeDeleted.current); - } + if (gameToBeDeleted.current) + await removeGameInstaller(gameToBeDeleted.current); }; return (