aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortheguymadmax <171496228+theguymadmax@users.noreply.github.com>2025-12-28 07:22:24 -0500
committerBond_009 <bond.009@outlook.com>2025-12-28 07:22:24 -0500
commitafc083e9fa77582ab8f79cf2fb94c9989dadd05b (patch)
treec654de3f16f8a8df7d5869b71934bd79a5c14df6
parentf867ce38424e9f461ef9ae571e4c4b863be586d2 (diff)
Backport pull request #15766 from jellyfin/release-10.11.z
Fix backdrop images being deleted when stored with media Original-merge: 12c5d6b63650c34a25609066a0138d37032eb7c2 Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
-rw-r--r--MediaBrowser.Providers/Manager/ItemImageProvider.cs42
1 files changed, 38 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
index 75882a088..e0354dbdf 100644
--- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs
+++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
@@ -88,7 +88,15 @@ namespace MediaBrowser.Providers.Manager
}
}
- singular.AddRange(item.GetImages(ImageType.Backdrop));
+ foreach (var backdrop in item.GetImages(ImageType.Backdrop))
+ {
+ var imageInMetadataFolder = backdrop.Path.StartsWith(itemMetadataPath, StringComparison.OrdinalIgnoreCase);
+ if (imageInMetadataFolder || canDeleteLocal || item.IsSaveLocalMetadataEnabled())
+ {
+ singular.Add(backdrop);
+ }
+ }
+
PruneImages(item, singular);
return singular.Count > 0;
@@ -466,10 +474,36 @@ namespace MediaBrowser.Providers.Manager
}
}
- if (UpdateMultiImages(item, images, ImageType.Backdrop))
+ bool hasBackdrop = false;
+ bool backdropStoredWithMedia = false;
+
+ foreach (var image in images)
{
- changed = true;
- foundImageTypes.Add(ImageType.Backdrop);
+ if (image.Type != ImageType.Backdrop)
+ {
+ continue;
+ }
+
+ hasBackdrop = true;
+
+ if (item.ContainingFolderPath is not null && item.ContainingFolderPath.Contains(Path.GetDirectoryName(image.FileInfo.FullName), StringComparison.OrdinalIgnoreCase))
+ {
+ backdropStoredWithMedia = true;
+ break;
+ }
+ }
+
+ if (hasBackdrop)
+ {
+ if (UpdateMultiImages(item, images, ImageType.Backdrop))
+ {
+ changed = true;
+ }
+
+ if (backdropStoredWithMedia)
+ {
+ foundImageTypes.Add(ImageType.Backdrop);
+ }
}
if (foundImageTypes.Count > 0)