Release v1.5.99
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
21ff749cf3
commit
a967eb1080
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "real-debrid-downloader",
|
"name": "real-debrid-downloader",
|
||||||
"version": "1.5.98",
|
"version": "1.5.99",
|
||||||
"description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)",
|
"description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)",
|
||||||
"main": "build/main/main/main.js",
|
"main": "build/main/main/main.js",
|
||||||
"author": "Sucukdeluxe",
|
"author": "Sucukdeluxe",
|
||||||
|
|||||||
@ -3734,16 +3734,11 @@ export class DownloadManager extends EventEmitter {
|
|||||||
}
|
}
|
||||||
delete this.session.packages[packageId];
|
delete this.session.packages[packageId];
|
||||||
this.session.packageOrder = this.session.packageOrder.filter((id) => id !== packageId);
|
this.session.packageOrder = this.session.packageOrder.filter((id) => id !== packageId);
|
||||||
// Keep packageId in runPackageIds so the "size > 0" guard still filters
|
// Keep runPackageIds intact — ghost entries (deleted packages) are harmless:
|
||||||
// other packages. But prune ghost entries: if no real package remains in
|
// findNextQueuedItem() won't find items for them, so the scheduler naturally
|
||||||
// the set, clear it so the scheduler isn't permanently blocked.
|
// terminates via finishRun() which clears runPackageIds. Pruning them here
|
||||||
if (this.runPackageIds.size > 0) {
|
// would make runPackageIds empty, disabling the "size > 0" filter guard and
|
||||||
for (const rpId of this.runPackageIds) {
|
// causing "Start Selected" to continue with ALL packages after cleanup.
|
||||||
if (!this.session.packages[rpId]) {
|
|
||||||
this.runPackageIds.delete(rpId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.runCompletedPackages.delete(packageId);
|
this.runCompletedPackages.delete(packageId);
|
||||||
this.hybridExtractRequeue.delete(packageId);
|
this.hybridExtractRequeue.delete(packageId);
|
||||||
this.resetSessionTotalsIfQueueEmpty();
|
this.resetSessionTotalsIfQueueEmpty();
|
||||||
@ -5955,10 +5950,13 @@ export class DownloadManager extends EventEmitter {
|
|||||||
logger.warn(`Hybrid-Extract: ${result.failed} Archive fehlgeschlagen, wird beim finalen Durchlauf erneut versucht`);
|
logger.warn(`Hybrid-Extract: ${result.failed} Archive fehlgeschlagen, wird beim finalen Durchlauf erneut versucht`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mark hybrid items with final status
|
// Mark hybrid items with final status — only items whose archives were
|
||||||
|
// actually in the extraction set (hybridItems), NOT all completedItems.
|
||||||
|
// Using completedItems here would falsely mark items whose archives
|
||||||
|
// weren't ready yet (e.g. part2 of an episode where part1 is still
|
||||||
|
// downloading) as "Done".
|
||||||
const updatedAt = nowMs();
|
const updatedAt = nowMs();
|
||||||
const targetItems = result.extracted > 0 && result.failed === 0 ? completedItems : hybridItems;
|
for (const entry of hybridItems) {
|
||||||
for (const entry of targetItems) {
|
|
||||||
if (isExtractedLabel(entry.fullStatus)) {
|
if (isExtractedLabel(entry.fullStatus)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user