diff --git a/package.json b/package.json index 0a156dc..c8bef16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "real-debrid-downloader", - "version": "1.4.98", + "version": "1.4.99", "description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)", "main": "build/main/main/main.js", "author": "Sucukdeluxe", diff --git a/src/main/constants.ts b/src/main/constants.ts index 51c69db..7f95d94 100644 --- a/src/main/constants.ts +++ b/src/main/constants.ts @@ -76,6 +76,7 @@ export function defaultSettings(): AppSettings { collapseNewPackages: true, autoSkipExtracted: false, confirmDeleteSelection: true, + totalDownloadedAllTime: 0, bandwidthSchedules: [] }; } diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index 86006d5..e41f967 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -728,6 +728,8 @@ export class DownloadManager extends EventEmitter { private speedBytesLastWindow = 0; + private sessionDownloadedBytes = 0; + private statsCache: DownloadStats | null = null; private statsCacheAt = 0; @@ -911,6 +913,7 @@ export class DownloadManager extends EventEmitter { const stats = { totalDownloaded, + totalDownloadedAllTime: this.settings.totalDownloadedAllTime, totalFiles, totalPackages: this.session.packageOrder.length, sessionStartedAt: this.session.runStartedAt @@ -4264,6 +4267,8 @@ export class DownloadManager extends EventEmitter { written += buffer.length; windowBytes += buffer.length; this.session.totalDownloadedBytes += buffer.length; + this.sessionDownloadedBytes += buffer.length; + this.settings.totalDownloadedAllTime += buffer.length; this.itemContributedBytes.set(active.itemId, (this.itemContributedBytes.get(active.itemId) || 0) + buffer.length); this.recordSpeed(buffer.length, item.packageId); throughputWindowBytes += buffer.length; diff --git a/src/main/storage.ts b/src/main/storage.ts index 36095b5..5baaef3 100644 --- a/src/main/storage.ts +++ b/src/main/storage.ts @@ -109,6 +109,7 @@ export function normalizeSettings(settings: AppSettings): AppSettings { collapseNewPackages: settings.collapseNewPackages !== undefined ? Boolean(settings.collapseNewPackages) : defaults.collapseNewPackages, autoSkipExtracted: settings.autoSkipExtracted !== undefined ? Boolean(settings.autoSkipExtracted) : defaults.autoSkipExtracted, confirmDeleteSelection: settings.confirmDeleteSelection !== undefined ? Boolean(settings.confirmDeleteSelection) : defaults.confirmDeleteSelection, + totalDownloadedAllTime: typeof settings.totalDownloadedAllTime === "number" && settings.totalDownloadedAllTime >= 0 ? settings.totalDownloadedAllTime : defaults.totalDownloadedAllTime, theme: VALID_THEMES.has(settings.theme) ? settings.theme : defaults.theme, bandwidthSchedules: normalizeBandwidthSchedules(settings.bandwidthSchedules) }; diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 5d00c3e..d41b155 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -51,6 +51,7 @@ interface LinkPopupState { const emptyStats = (): DownloadStats => ({ totalDownloaded: 0, + totalDownloadedAllTime: 0, totalFiles: 0, totalPackages: 0, sessionStartedAt: 0 @@ -2124,9 +2125,13 @@ export function App(): ReactElement { {snapshot.speedText.replace("Geschwindigkeit: ", "")}
- Gesamt heruntergeladen + Heruntergeladen (Session) {humanSize(snapshot.stats.totalDownloaded)}
+
+ Heruntergeladen (Gesamt) + {humanSize(snapshot.stats.totalDownloadedAllTime)} +
Fertige Dateien {snapshot.stats.totalFiles} @@ -2476,7 +2481,8 @@ export function App(): ReactElement {