🔧 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

View File

@@ -152,21 +152,6 @@ function removeThumbnailsForPath(relPath) {
const normalized = sanitizeRelative(relPath);
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 candidates = [
path.join(VIDEO_THUMB_ROOT, parsed.dir, `${parsed.name}.jpg`),
@@ -180,6 +165,31 @@ function removeThumbnailsForPath(relPath) {
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) {