Przeglądaj źródła

Add missing checks for item locked state in metadata updates

Joe Rogers 2 lat temu
rodzic
commit
2d2b0a528c

+ 6 - 0
MediaBrowser.Providers/Manager/MetadataService.cs

@@ -334,6 +334,12 @@ namespace MediaBrowser.Providers.Manager
                 updateType |= UpdateCumulativeRunTimeTicks(item, children);
                 updateType |= UpdateCumulativeRunTimeTicks(item, children);
                 updateType |= UpdateDateLastMediaAdded(item, children);
                 updateType |= UpdateDateLastMediaAdded(item, children);
 
 
+                // don't update user-changeable metadata for locked items
+                if (item.IsLocked)
+                {
+                    return updateType;
+                }
+
                 if (EnableUpdatingPremiereDateFromChildren)
                 if (EnableUpdatingPremiereDateFromChildren)
                 {
                 {
                     updateType |= UpdatePremiereDate(item, children);
                     updateType |= UpdatePremiereDate(item, children);

+ 4 - 1
MediaBrowser.Providers/MediaInfo/AudioFileProber.cs

@@ -105,7 +105,10 @@ namespace MediaBrowser.Providers.MediaInfo
             audio.RunTimeTicks = mediaInfo.RunTimeTicks;
             audio.RunTimeTicks = mediaInfo.RunTimeTicks;
             audio.Size = mediaInfo.Size;
             audio.Size = mediaInfo.Size;
 
 
-            FetchDataFromTags(audio);
+            if (!audio.IsLocked)
+            {
+                FetchDataFromTags(audio);
+            }
 
 
             _itemRepo.SaveMediaStreams(audio.Id, mediaInfo.MediaStreams, cancellationToken);
             _itemRepo.SaveMediaStreams(audio.Id, mediaInfo.MediaStreams, cancellationToken);
         }
         }

+ 6 - 0
MediaBrowser.Providers/Music/AlbumMetadataService.cs

@@ -54,6 +54,12 @@ namespace MediaBrowser.Providers.Music
         {
         {
             var updateType = base.UpdateMetadataFromChildren(item, children, isFullRefresh, currentUpdateType);
             var updateType = base.UpdateMetadataFromChildren(item, children, isFullRefresh, currentUpdateType);
 
 
+            // don't update user-changeable metadata for locked items
+            if (item.IsLocked)
+            {
+                return updateType;
+            }
+
             if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
             if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
             {
             {
                 if (!item.LockedFields.Contains(MetadataField.Name))
                 if (!item.LockedFields.Contains(MetadataField.Name))