Skip sample files during auto-rename to prevent (2) MKV duplicates

Sample files like wayne-sample.mkv were renamed by auto-rename which
stripped the -sample suffix. After rename they were indistinguishable
from the main MKV, causing MKV collection to create (2) copies
(e.g. Messiah.Superstar.S01E01...WAYNE (2).mkv at 17 MB alongside
the real 470 MB episode).

Auto-rename now skips files with a "sample" token in their name,
matching the same detection used by MKV collection's sample filter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sucukdeluxe 2026-03-23 12:06:41 +01:00
parent 8cc08a422f
commit 79c178eb0d

View File

@ -3307,6 +3307,7 @@ export class DownloadManager extends EventEmitter {
} }
} }
const sampleTokenRe = /(^|[._\-\s])sample([._\-\s]|$)/i;
for (const sourcePath of videoFiles) { for (const sourcePath of videoFiles) {
if (shouldAbort?.()) { if (shouldAbort?.()) {
return renamed; return renamed;
@ -3314,6 +3315,13 @@ export class DownloadManager extends EventEmitter {
const sourceName = path.basename(sourcePath); const sourceName = path.basename(sourcePath);
const sourceExt = path.extname(sourceName); const sourceExt = path.extname(sourceName);
const sourceBaseName = path.basename(sourceName, sourceExt); const sourceBaseName = path.basename(sourceName, sourceExt);
// Skip sample files — renaming them strips the "-sample" suffix,
// making them indistinguishable from the main MKV and causing (2)
// duplicates during MKV collection.
if (sampleTokenRe.test(sourceBaseName)) {
continue;
}
const folderCandidates: string[] = []; const folderCandidates: string[] = [];
let currentDir = path.dirname(sourcePath); let currentDir = path.dirname(sourcePath);
while (currentDir && isPathInsideDir(currentDir, extractDir)) { while (currentDir && isPathInsideDir(currentDir, extractDir)) {