From a263e3eb2c444e45caa08415d982c3df3eeb8c45 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Wed, 4 Mar 2026 17:31:20 +0100 Subject: [PATCH] Release v1.6.18 Co-Authored-By: Claude Opus 4.6 --- package.json | 2 +- src/main/download-manager.ts | 11 ++++------- src/renderer/App.tsx | 9 +++++---- src/renderer/styles.css | 1 + tests/app-order.test.ts | 12 ++++++------ 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 5513889..0ddadd5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "real-debrid-downloader", - "version": "1.6.17", + "version": "1.6.18", "description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)", "main": "build/main/main/main.js", "author": "Sucukdeluxe", diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index 8ea951a..601db78 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -1408,10 +1408,8 @@ export class DownloadManager extends EventEmitter { item.updatedAt = nowMs(); } - if (!this.session.running) { - this.runItemIds.delete(itemId); - this.runOutcomes.delete(itemId); - } + this.runItemIds.delete(itemId); + this.runOutcomes.delete(itemId); this.retryAfterByItem.delete(itemId); this.retryStateByItem.delete(itemId); @@ -1425,9 +1423,7 @@ export class DownloadManager extends EventEmitter { this.packagePostProcessTasks.delete(packageId); this.hybridExtractRequeue.delete(packageId); - if (!this.session.running) { - this.runPackageIds.delete(packageId); - } + this.runPackageIds.delete(packageId); this.runCompletedPackages.delete(packageId); const items = pkg.itemIds @@ -2629,6 +2625,7 @@ export class DownloadManager extends EventEmitter { item.fullStatus = "Übersprungen"; item.speedBps = 0; item.updatedAt = nowMs(); + this.recordRunOutcome(itemId, "cancelled"); } this.persistSoon(); this.emitState(); diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index f39d6e6..79f865e 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -1027,13 +1027,14 @@ export function App(): ReactElement { }; const onCheckUpdates = async (): Promise => { + let updateResult: UpdateCheckResult | null = null; await performQuickAction(async () => { setUpdateInstallProgress(null); - const result = await window.rd.checkUpdates(); - await handleUpdateResult(result, "manual"); + updateResult = await window.rd.checkUpdates(); }, (error) => { showToast(`Update-Check fehlgeschlagen: ${String(error)}`, 2800); }); + if (updateResult) await handleUpdateResult(updateResult, "manual"); }; const persistDraftSettings = async (): Promise => { @@ -2547,8 +2548,8 @@ export function App(): ReactElement { {itemStatusCounts.failed}
- {snapshot.etaText.split(": ")[0]} - {snapshot.etaText.split(": ")[1] || "--"} + {snapshot.etaText.includes(": ") ? snapshot.etaText.slice(0, snapshot.etaText.indexOf(": ")) : snapshot.etaText} + {snapshot.etaText.includes(": ") ? snapshot.etaText.slice(snapshot.etaText.indexOf(": ") + 2) : "--"}
diff --git a/src/renderer/styles.css b/src/renderer/styles.css index 1a83b14..c56f9a3 100644 --- a/src/renderer/styles.css +++ b/src/renderer/styles.css @@ -1748,6 +1748,7 @@ td { font-weight: 600; pointer-events: none; backdrop-filter: blur(2px); + z-index: 200; } .modal-backdrop { diff --git a/tests/app-order.test.ts b/tests/app-order.test.ts index 84a540a..59add96 100644 --- a/tests/app-order.test.ts +++ b/tests/app-order.test.ts @@ -25,9 +25,9 @@ describe("sortPackageOrderByName", () => { const sorted = sortPackageOrderByName( ["pkg3", "pkg1", "pkg2"], { - pkg1: { id: "pkg1", name: "Alpha", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 }, - pkg2: { id: "pkg2", name: "beta", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 }, - pkg3: { id: "pkg3", name: "Gamma", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 } + pkg1: { id: "pkg1", name: "Alpha", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, priority: "normal", createdAt: 0, updatedAt: 0 }, + pkg2: { id: "pkg2", name: "beta", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, priority: "normal", createdAt: 0, updatedAt: 0 }, + pkg3: { id: "pkg3", name: "Gamma", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, priority: "normal", createdAt: 0, updatedAt: 0 } }, false ); @@ -38,9 +38,9 @@ describe("sortPackageOrderByName", () => { const sorted = sortPackageOrderByName( ["pkg1", "pkg2", "pkg3"], { - pkg1: { id: "pkg1", name: "Alpha", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 }, - pkg2: { id: "pkg2", name: "beta", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 }, - pkg3: { id: "pkg3", name: "Gamma", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 } + pkg1: { id: "pkg1", name: "Alpha", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, priority: "normal", createdAt: 0, updatedAt: 0 }, + pkg2: { id: "pkg2", name: "beta", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, priority: "normal", createdAt: 0, updatedAt: 0 }, + pkg3: { id: "pkg3", name: "Gamma", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, priority: "normal", createdAt: 0, updatedAt: 0 } }, true );