Compare commits
No commits in common. "927013d9a6131da00c30654851cdb1e6bdccbdf0" and "6897776460d70c35a4552301b0887bc895231662" have entirely different histories.
927013d9a6
...
6897776460
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "real-debrid-downloader",
|
"name": "real-debrid-downloader",
|
||||||
"version": "1.6.64",
|
"version": "1.6.63",
|
||||||
"description": "Desktop downloader",
|
"description": "Desktop downloader",
|
||||||
"main": "build/main/main/main.js",
|
"main": "build/main/main/main.js",
|
||||||
"author": "Sucukdeluxe",
|
"author": "Sucukdeluxe",
|
||||||
|
|||||||
@ -6309,6 +6309,19 @@ export class DownloadManager extends EventEmitter {
|
|||||||
}
|
}
|
||||||
if (readyArchives.size === 0) {
|
if (readyArchives.size === 0) {
|
||||||
logger.info(`Hybrid-Extract: pkg=${pkg.name}, keine fertigen Archive-Sets`);
|
logger.info(`Hybrid-Extract: pkg=${pkg.name}, keine fertigen Archive-Sets`);
|
||||||
|
// Relabel completed items that are part of incomplete multi-part archives
|
||||||
|
// from "Ausstehend" to "Warten auf Parts" so the UI accurately reflects
|
||||||
|
// that extraction is waiting for remaining parts to finish downloading.
|
||||||
|
const allDone = items.every((i) => i.status === "completed" || i.status === "failed" || i.status === "cancelled");
|
||||||
|
if (!allDone) {
|
||||||
|
for (const entry of items) {
|
||||||
|
if (entry.status === "completed" && entry.fullStatus === "Entpacken - Ausstehend") {
|
||||||
|
entry.fullStatus = "Entpacken - Warten auf Parts";
|
||||||
|
entry.updatedAt = nowMs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.emitState();
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6389,26 +6402,24 @@ export class DownloadManager extends EventEmitter {
|
|||||||
|
|
||||||
// Mark items based on whether their archive is actually ready for extraction.
|
// Mark items based on whether their archive is actually ready for extraction.
|
||||||
// Only items whose archive is in readyArchives get "Ausstehend"; others keep
|
// Only items whose archive is in readyArchives get "Ausstehend"; others keep
|
||||||
// their current label to avoid flicker between hybrid runs.
|
// "Warten auf Parts" to avoid flicker between hybrid runs.
|
||||||
const allDownloaded = completedItems.length >= items.length;
|
const allDownloaded = completedItems.length >= items.length;
|
||||||
let labelsChanged = false;
|
|
||||||
for (const entry of completedItems) {
|
for (const entry of completedItems) {
|
||||||
if (isExtractedLabel(entry.fullStatus)) {
|
if (isExtractedLabel(entry.fullStatus)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const belongsToReady = allDownloaded
|
if (allDownloaded) {
|
||||||
|| hybridFileNames.has((entry.fileName || "").toLowerCase())
|
// Everything downloaded — all remaining items will be extracted
|
||||||
|| (entry.targetPath && hybridFileNames.has(path.basename(entry.targetPath).toLowerCase()));
|
entry.fullStatus = "Entpacken - Ausstehend";
|
||||||
const targetLabel = belongsToReady ? "Entpacken - Ausstehend" : "Entpacken - Warten auf Parts";
|
} else if (hybridFileNames.has((entry.fileName || "").toLowerCase()) ||
|
||||||
if (entry.fullStatus !== targetLabel) {
|
(entry.targetPath && hybridFileNames.has(path.basename(entry.targetPath).toLowerCase()))) {
|
||||||
entry.fullStatus = targetLabel;
|
entry.fullStatus = "Entpacken - Ausstehend";
|
||||||
entry.updatedAt = nowMs();
|
} else {
|
||||||
labelsChanged = true;
|
entry.fullStatus = "Entpacken - Warten auf Parts";
|
||||||
}
|
}
|
||||||
|
entry.updatedAt = nowMs();
|
||||||
}
|
}
|
||||||
if (labelsChanged) {
|
this.emitState();
|
||||||
this.emitState();
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await extractPackageArchives({
|
const result = await extractPackageArchives({
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user