Only remove images in metadata folder by default (#12631)

pull/12636/head
gnattu 6 months ago committed by GitHub
parent 6b646e24ea
commit 90a00e1293
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -68,16 +68,22 @@ namespace MediaBrowser.Providers.Manager
/// Removes all existing images from the provided item. /// Removes all existing images from the provided item.
/// </summary> /// </summary>
/// <param name="item">The <see cref="BaseItem"/> to remove images from.</param> /// <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> /// <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 singular = new List<ItemImageInfo>();
var itemMetadataPath = item.GetInternalMetadataPath();
for (var i = 0; i < _singularImages.Length; i++) for (var i = 0; i < _singularImages.Length; i++)
{ {
var currentImage = item.GetImageInfo(_singularImages[i], 0); var currentImage = item.GetImageInfo(_singularImages[i], 0);
if (currentImage is not null) if (currentImage is not null)
{ {
singular.Add(currentImage); var imageInMetadataFolder = currentImage.Path.StartsWith(itemMetadataPath, StringComparison.OrdinalIgnoreCase);
if (imageInMetadataFolder || canDeleteLocal || item.IsSaveLocalMetadataEnabled())
{
singular.Add(currentImage);
}
} }
} }

@ -580,6 +580,7 @@ namespace Jellyfin.Providers.Tests.Manager
CallBase = true CallBase = true
}; };
item.Setup(m => m.IsSaveLocalMetadataEnabled()).Returns(false); item.Setup(m => m.IsSaveLocalMetadataEnabled()).Returns(false);
item.Setup(m => m.GetInternalMetadataPath()).Returns(string.Empty);
var path = validPaths ? _testDataImagePath.Format : "invalid path {0}"; var path = validPaths ? _testDataImagePath.Format : "invalid path {0}";
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)

Loading…
Cancel
Save