diff options
| author | gnattu <gnattu@users.noreply.github.com> | 2024-09-13 03:45:38 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-12 13:45:38 -0600 |
| commit | 90a00e12937c5b9922af5024fd3e281f28edc17b (patch) | |
| tree | 5c750c80f764fb2ede709d9bda07b871898b548e | |
| parent | 6b646e24eabdfdd150f1ff72f837d37b43f3b985 (diff) | |
Only remove images in metadata folder by default (#12631)
| -rw-r--r-- | MediaBrowser.Providers/Manager/ItemImageProvider.cs | 10 | ||||
| -rw-r--r-- | tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index 1bb7ffcce..36a7c2fab 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -68,16 +68,22 @@ namespace MediaBrowser.Providers.Manager /// Removes all existing images from the provided item. /// </summary> /// <param name="item">The <see cref="BaseItem"/> to remove images from.</param> + /// <param name="canDeleteLocal">Whether removing images outside metadata folder is allowed.</param> /// <returns><c>true</c> if changes were made to the item; otherwise <c>false</c>.</returns> - public bool RemoveImages(BaseItem item) + public bool RemoveImages(BaseItem item, bool canDeleteLocal = false) { var singular = new List<ItemImageInfo>(); + var itemMetadataPath = item.GetInternalMetadataPath(); for (var i = 0; i < _singularImages.Length; i++) { var currentImage = item.GetImageInfo(_singularImages[i], 0); if (currentImage is not null) { - singular.Add(currentImage); + var imageInMetadataFolder = currentImage.Path.StartsWith(itemMetadataPath, StringComparison.OrdinalIgnoreCase); + if (imageInMetadataFolder || canDeleteLocal || item.IsSaveLocalMetadataEnabled()) + { + singular.Add(currentImage); + } } } diff --git a/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs b/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs index 5dd3eb8ab..0c7d2487c 100644 --- a/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs +++ b/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs @@ -580,6 +580,7 @@ namespace Jellyfin.Providers.Tests.Manager CallBase = true }; item.Setup(m => m.IsSaveLocalMetadataEnabled()).Returns(false); + item.Setup(m => m.GetInternalMetadataPath()).Returns(string.Empty); var path = validPaths ? _testDataImagePath.Format : "invalid path {0}"; for (int i = 0; i < count; i++) |
