Compare commits

..

No commits in common. "f3e0e54da730d7f1769fed4c9321d37bc0a2b204" and "369d25a3655f96c6facd918fed6d7b89d181d4eb" have entirely different histories.

3 changed files with 6 additions and 32 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "real-debrid-downloader", "name": "real-debrid-downloader",
"version": "1.7.9", "version": "1.7.8",
"description": "Desktop downloader", "description": "Desktop downloader",
"main": "build/main/main/main.js", "main": "build/main/main/main.js",
"author": "Sucukdeluxe", "author": "Sucukdeluxe",

View File

@ -3066,6 +3066,7 @@ export class DownloadManager extends EventEmitter {
this.session.paused = false; this.session.paused = false;
this.session.runStartedAt = nowMs(); this.session.runStartedAt = nowMs();
this.session.totalDownloadedBytes = 0; this.session.totalDownloadedBytes = 0;
this.sessionDownloadedBytes = 0;
this.session.summaryText = ""; this.session.summaryText = "";
this.session.reconnectUntil = 0; this.session.reconnectUntil = 0;
this.session.reconnectReason = ""; this.session.reconnectReason = "";
@ -3173,6 +3174,7 @@ export class DownloadManager extends EventEmitter {
this.session.paused = false; this.session.paused = false;
this.session.runStartedAt = nowMs(); this.session.runStartedAt = nowMs();
this.session.totalDownloadedBytes = 0; this.session.totalDownloadedBytes = 0;
this.sessionDownloadedBytes = 0;
this.session.summaryText = ""; this.session.summaryText = "";
this.session.reconnectUntil = 0; this.session.reconnectUntil = 0;
this.session.reconnectReason = ""; this.session.reconnectReason = "";
@ -3302,10 +3304,11 @@ export class DownloadManager extends EventEmitter {
this.session.running = true; this.session.running = true;
this.session.paused = false; this.session.paused = false;
// Keep cumulative session bytes across stop/resume so the session total stays accurate. // By design: runStartedAt and totalDownloadedBytes reset on each start/resume so that
// Only runStartedAt resets (for ETA/speed calculations relative to current run). // duration, average speed, and ETA are calculated relative to the current run, not cumulative.
this.session.runStartedAt = nowMs(); this.session.runStartedAt = nowMs();
this.session.totalDownloadedBytes = 0; this.session.totalDownloadedBytes = 0;
this.sessionDownloadedBytes = 0;
this.session.summaryText = ""; this.session.summaryText = "";
this.session.reconnectUntil = 0; this.session.reconnectUntil = 0;
this.session.reconnectReason = ""; this.session.reconnectReason = "";

View File

@ -2742,35 +2742,6 @@ export async function extractPackageArchives(options: ExtractOptions): Promise<{
passwordCandidates = frozenPasswords; passwordCandidates = frozenPasswords;
if (abortError) throw new Error("aborted:extract"); if (abortError) throw new Error("aborted:extract");
// ── Retry failed wrong_password archives serially ──
// Parallel UnRAR processes writing to the same target directory can cause
// CRC mismatches that are misreported as "Incorrect password".
// If any archive succeeded (i.e. the password is known), retry the failed
// ones one-at-a-time to eliminate false positives from I/O contention.
if (failed > 0 && extracted > 0) {
const failedArchives = parallelQueue.filter((ap) => !extractedArchives.has(ap) && !resumeCompleted.has(archiveNameKey(path.basename(ap))));
if (failedArchives.length > 0) {
logger.info(`Serielle Wiederholung: ${failedArchives.length} fehlgeschlagene Archive werden einzeln wiederholt (mögliche Parallelitäts-Kollision)`);
let retryRecovered = 0;
for (const archivePath of failedArchives) {
if (options.signal?.aborted || noExtractorEncountered) break;
try {
// Reset failed count for this archive before retry
failed -= 1;
await extractSingleArchive(archivePath);
retryRecovered += 1;
} catch (retryError) {
const errText = String(retryError);
if (isExtractAbortError(errText)) throw retryError;
// extractSingleArchive already incremented failed and logged the error
}
}
if (retryRecovered > 0) {
logger.info(`Serielle Wiederholung: ${retryRecovered}/${failedArchives.length} Archive erfolgreich entpackt`);
}
}
}
} }
if (noExtractorEncountered) { if (noExtractorEncountered) {