diff --git a/src/main/events/torrenting/pause-game-seed.ts b/src/main/events/torrenting/pause-game-seed.ts index 5394ee20..8fe69bc5 100644 --- a/src/main/events/torrenting/pause-game-seed.ts +++ b/src/main/events/torrenting/pause-game-seed.ts @@ -3,23 +3,22 @@ import { registerEvent } from "../register-event"; import { DownloadManager } from "@main/services"; import { dataSource } from "@main/data-source"; import { Game } from "@main/entity"; -import { gameRepository } from "@main/repository"; + const pauseGameSeed = async ( _event: Electron.IpcMainInvokeEvent, gameId: number ) => { - const game = await gameRepository.findOneBy({ id: gameId }); - - if (game?.status !== "seeding") return; - await dataSource.transaction(async (transactionalEntityManager) => { await transactionalEntityManager .getRepository(Game) - .update({ id: gameId }, { status: "complete", shouldSeed: false }); + .update( + { id: gameId }, + { status: "complete", shouldSeed: false } + ); }); - await DownloadManager.pauseSeeding(gameId); + await DownloadManager.cancelDownload(gameId); }; registerEvent("pauseGameSeed", pauseGameSeed); diff --git a/src/main/events/torrenting/resume-game-seed.ts b/src/main/events/torrenting/resume-game-seed.ts index 896617b0..f5d177c2 100644 --- a/src/main/events/torrenting/resume-game-seed.ts +++ b/src/main/events/torrenting/resume-game-seed.ts @@ -13,6 +13,8 @@ const resumeGameSeed = async ( where: { id: gameId, isDeleted: false, + downloader: 1, + progress: 1, }, }); @@ -21,10 +23,13 @@ const resumeGameSeed = async ( await dataSource.transaction(async (transactionalEntityManager) => { await transactionalEntityManager .getRepository(Game) - .update({ id: gameId }, { status: "seeding", shouldSeed: true }); + .update( + { id: gameId }, + { status: "seeding", shouldSeed: true } + ); }); - await DownloadManager.resumeDownload(game); + await DownloadManager.startDownload(game); }; registerEvent("resumeGameSeed", resumeGameSeed); diff --git a/src/renderer/src/pages/downloads/download-group.tsx b/src/renderer/src/pages/downloads/download-group.tsx index 728114e3..ae428c2c 100644 --- a/src/renderer/src/pages/downloads/download-group.tsx +++ b/src/renderer/src/pages/downloads/download-group.tsx @@ -122,7 +122,8 @@ export function DownloadGroup({ if (game.progress === 1) { const uploadSpeed = formatBytes(seedingStatus?.uploadSpeed ?? 0); - return game.status === "seeding" ? ( + return game.status === "seeding" && + game.downloader === Downloader.Torrent ? ( <>

{t("seeding")}

{uploadSpeed &&

{uploadSpeed}/s

} @@ -171,13 +172,15 @@ export function DownloadGroup({ { label: t("stop_seeding"), disabled: deleting, - show: game.status === "seeding", + show: + game.status === "seeding" && game.downloader === Downloader.Torrent, onClick: () => pauseSeeding(game.id), }, { label: t("resume_seeding"), disabled: deleting, - show: game.status !== "seeding", + show: + game.status !== "seeding" && game.downloader === Downloader.Torrent, onClick: () => resumeSeeding(game.id), }, {