From ca05fa184dfab32256fc296b25adf972e17cd89a Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Mon, 2 Mar 2026 10:43:29 +0100 Subject: [PATCH] Fix download.bin filename flickering during unrestrict Keep existing good filename when debrid API returns "download.bin" or opaque name. Only overwrite item.fileName if the resolved name is actually better (not opaque, not download.bin). Co-Authored-By: Claude Opus 4.6 --- package.json | 2 +- src/main/download-manager.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 14724c7..14ea365 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "real-debrid-downloader", - "version": "1.4.78", + "version": "1.4.79", "description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)", "main": "build/main/main/main.js", "author": "Sucukdeluxe", diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index 67165db..c84529a 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -3346,7 +3346,14 @@ export class DownloadManager extends EventEmitter { } item.provider = unrestricted.provider; item.retries += unrestricted.retriesUsed; - item.fileName = sanitizeFilename(unrestricted.fileName || filenameFromUrl(item.url)); + const resolvedName = sanitizeFilename(unrestricted.fileName || filenameFromUrl(item.url)); + // Only overwrite fileName if the resolved name is better (not "download.bin" / opaque) + if (resolvedName && !looksLikeOpaqueFilename(resolvedName) && resolvedName.toLowerCase() !== "download.bin") { + item.fileName = resolvedName; + } else if (looksLikeOpaqueFilename(item.fileName)) { + // Current name is also opaque, use whatever we got + item.fileName = resolvedName; + } try { fs.mkdirSync(pkg.outputDir, { recursive: true }); } catch (mkdirError) {