From 3f4c9e063b59ffe51c213e5e31ea8ce4c0b2bf23 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Fri, 16 Jan 2026 14:24:03 -0600 Subject: [PATCH] don't delete channel watermarks that are still used (#2781) * don't delete channel watermarks that are still used * fix folder cleanup check --- .../Commands/DeleteOrphanedArtworkHandler.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/ErsatzTV.Application/Maintenance/Commands/DeleteOrphanedArtworkHandler.cs b/ErsatzTV.Application/Maintenance/Commands/DeleteOrphanedArtworkHandler.cs index bf7077dae..3bffbab70 100644 --- a/ErsatzTV.Application/Maintenance/Commands/DeleteOrphanedArtworkHandler.cs +++ b/ErsatzTV.Application/Maintenance/Commands/DeleteOrphanedArtworkHandler.cs @@ -49,6 +49,17 @@ public class DeleteOrphanedArtworkHandler( System.Collections.Generic.HashSet validFiles = []; + List watermarks = await dbContext.ChannelWatermarks + .TagWithCallSite() + .AsNoTracking() + .Select(c => c.Image) + .ToListAsync(cancellationToken); + + foreach (string watermark in watermarks.Where(w => !string.IsNullOrWhiteSpace(w))) + { + validFiles.Add(watermark); + } + var lastId = 0; while (true) { @@ -142,7 +153,15 @@ public class DeleteOrphanedArtworkHandler( { try { - fileSystem.Directory.Delete(path); + // don't delete artwork cache folder or its direct children + if (path != FileSystemLayout.ArtworkCacheFolder) + { + var parent = fileSystem.Directory.GetParent(path); + if (parent?.FullName != FileSystemLayout.ArtworkCacheFolder) + { + fileSystem.Directory.Delete(path); + } + } } catch (Exception ex) {