Release v1.6.9
Fix extraction resume state / progress sync, abort labels, and hybrid pkg.status Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
97c5bfaa7d
commit
86a358d568
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "real-debrid-downloader",
|
||||
"version": "1.6.8",
|
||||
"version": "1.6.9",
|
||||
"description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)",
|
||||
"main": "build/main/main/main.js",
|
||||
"author": "Sucukdeluxe",
|
||||
|
||||
@ -3495,13 +3495,19 @@ export class DownloadManager extends EventEmitter {
|
||||
if (!item || item.status !== "completed") {
|
||||
continue;
|
||||
}
|
||||
if (/^Entpacken/i.test(item.fullStatus || "")) {
|
||||
const ft = (item.fullStatus || "").trim();
|
||||
if (/^Entpacken/i.test(ft)) {
|
||||
// Only mark items with active extraction progress as "abgebrochen".
|
||||
// Items that were just pending ("Ausstehend", "Warten auf Parts") weren't
|
||||
// actively being extracted, so keep their label as-is.
|
||||
if (ft !== "Entpacken - Ausstehend" && ft !== "Entpacken - Warten auf Parts") {
|
||||
item.fullStatus = "Entpacken abgebrochen (wird fortgesetzt)";
|
||||
item.updatedAt = nowMs();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async acquirePostProcessSlot(packageId: string): Promise<void> {
|
||||
// Extract packages sequentially (one at a time) to focus I/O on finishing
|
||||
@ -3614,6 +3620,8 @@ export class DownloadManager extends EventEmitter {
|
||||
if (!allDone && this.settings.autoExtract && this.settings.hybridExtract && success > 0 && failed === 0) {
|
||||
const needsExtraction = items.some((item) => item.status === "completed" && !isExtractedLabel(item.fullStatus));
|
||||
if (needsExtraction) {
|
||||
pkg.status = "queued";
|
||||
pkg.updatedAt = nowMs();
|
||||
for (const item of items) {
|
||||
if (item.status === "completed" && !isExtractedLabel(item.fullStatus)) {
|
||||
item.fullStatus = "Entpacken - Ausstehend";
|
||||
@ -3716,6 +3724,8 @@ export class DownloadManager extends EventEmitter {
|
||||
item.status === "completed" && !isExtractedLabel(item.fullStatus)
|
||||
);
|
||||
if (needsExtraction) {
|
||||
pkg.status = "queued";
|
||||
pkg.updatedAt = nowMs();
|
||||
for (const item of items) {
|
||||
if (item.status === "completed" && !isExtractedLabel(item.fullStatus)) {
|
||||
item.fullStatus = "Entpacken - Ausstehend";
|
||||
|
||||
@ -1945,6 +1945,15 @@ export async function extractPackageArchives(options: ExtractOptions): Promise<{
|
||||
|
||||
emitProgress(extracted, "", "extracting");
|
||||
|
||||
// Emit "done" progress for archives already completed via resume state
|
||||
// so the caller's onProgress handler can mark their items as "Done" immediately
|
||||
// rather than leaving them as "Entpacken - Ausstehend" until all extraction finishes.
|
||||
for (const archivePath of candidates) {
|
||||
if (resumeCompleted.has(archiveNameKey(path.basename(archivePath)))) {
|
||||
emitProgress(extracted, path.basename(archivePath), "extracting", 100, 0);
|
||||
}
|
||||
}
|
||||
|
||||
const maxParallel = Math.max(1, options.maxParallel || 1);
|
||||
let noExtractorEncountered = false;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user