From fc34946cf73a283a4d83428d2044b814ae7338fe Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Fri, 16 Jan 2026 14:18:59 -0600 Subject: [PATCH] don't delete channel watermarks that are still used --- .../Commands/DeleteOrphanedArtworkHandler.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ErsatzTV.Application/Maintenance/Commands/DeleteOrphanedArtworkHandler.cs b/ErsatzTV.Application/Maintenance/Commands/DeleteOrphanedArtworkHandler.cs index bf7077dae..772ad801e 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,12 @@ public class DeleteOrphanedArtworkHandler( { try { - fileSystem.Directory.Delete(path); + // don't delete direct children of artwork cache folder + var parent = fileSystem.Directory.GetParent(path); + if (parent != null && parent.FullName != FileSystemLayout.ArtworkCacheFolder) + { + fileSystem.Directory.Delete(path); + } } catch (Exception ex) {