🔧 Cache içinde boş kalan thumbnail klasörlerini de temizle.

This commit is contained in:
2025-10-26 19:38:00 +03:00
parent 426a1302fc
commit 6e2ecd0468
2 changed files with 29 additions and 15 deletions

4
.gitignore vendored
View File

@@ -51,11 +51,15 @@ desktop.ini
# Media / Download directories (depending on your setup) # Media / Download directories (depending on your setup)
downloads/ downloads/
server/cache/
movie/movieData/ movie/movieData/
movie/movieData/**/subtitles/ movie/movieData/**/subtitles/
movie/movieData/**/poster.jpg movie/movieData/**/poster.jpg
movie/movieData/**/backdrop.jpg movie/movieData/**/backdrop.jpg
# Generic placeholders
*.gitkeep
# Torrent / upload temp files # Torrent / upload temp files
/uploads/ /uploads/
/uploads/* /uploads/*

View File

@@ -152,21 +152,6 @@ function removeThumbnailsForPath(relPath) {
const normalized = sanitizeRelative(relPath); const normalized = sanitizeRelative(relPath);
if (!normalized) return; if (!normalized) return;
const directDirs = [
path.join(VIDEO_THUMB_ROOT, normalized),
path.join(IMAGE_THUMB_ROOT, normalized)
];
for (const target of directDirs) {
try {
if (fs.existsSync(target) && fs.lstatSync(target).isDirectory()) {
fs.rmSync(target, { recursive: true, force: true });
}
} catch (err) {
console.warn(`⚠️ Thumbnail klasörü silinemedi (${target}): ${err.message}`);
}
}
const parsed = path.parse(normalized); const parsed = path.parse(normalized);
const candidates = [ const candidates = [
path.join(VIDEO_THUMB_ROOT, parsed.dir, `${parsed.name}.jpg`), path.join(VIDEO_THUMB_ROOT, parsed.dir, `${parsed.name}.jpg`),
@@ -180,6 +165,31 @@ function removeThumbnailsForPath(relPath) {
console.warn(`⚠️ Thumbnail silinemedi (${candidate}): ${err.message}`); console.warn(`⚠️ Thumbnail silinemedi (${candidate}): ${err.message}`);
} }
} }
const potentialDirs = [
path.join(VIDEO_THUMB_ROOT, parsed.dir),
path.join(IMAGE_THUMB_ROOT, parsed.dir)
];
for (const dirPath of potentialDirs) {
cleanupEmptyDirs(dirPath);
}
}
function cleanupEmptyDirs(startDir) {
let dir = startDir;
while (
dir &&
dir.startsWith(THUMBNAIL_DIR) &&
fs.existsSync(dir) &&
fs.lstatSync(dir).isDirectory()
) {
const entries = fs.readdirSync(dir);
if (entries.length > 0) break;
fs.rmdirSync(dir);
dir = path.dirname(dir);
if (dir === THUMBNAIL_DIR || dir === path.dirname(THUMBNAIL_DIR)) break;
}
} }
function resolveThumbnailAbsolute(relThumbPath) { function resolveThumbnailAbsolute(relThumbPath) {