Sfoglia il codice sorgente

respect locked fields during media probe

Luke Pulverenti 8 anni fa
parent
commit
c0e5494825
1 ha cambiato i file con 14 aggiunte e 10 eliminazioni
  1. 14 10
      MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

+ 14 - 10
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

@@ -348,7 +348,7 @@ namespace MediaBrowser.Providers.MediaInfo
         {
             var isFullRefresh = options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh;
 
-            if (!video.LockedFields.Contains(MetadataFields.OfficialRating))
+            if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.OfficialRating))
             {
                 if (!string.IsNullOrWhiteSpace(data.OfficialRating) || isFullRefresh)
                 {
@@ -361,7 +361,7 @@ namespace MediaBrowser.Providers.MediaInfo
                 video.OfficialRatingDescription = data.OfficialRatingDescription;
             }
 
-            if (!video.LockedFields.Contains(MetadataFields.Genres))
+            if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Genres))
             {
                 if (video.Genres.Count == 0 || isFullRefresh)
                 {
@@ -374,7 +374,7 @@ namespace MediaBrowser.Providers.MediaInfo
                 }
             }
 
-            if (!video.LockedFields.Contains(MetadataFields.Studios))
+            if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Studios))
             {
                 if (video.Studios.Count == 0 || isFullRefresh)
                 {
@@ -415,14 +415,18 @@ namespace MediaBrowser.Providers.MediaInfo
                     video.ParentIndexNumber = data.ParentIndexNumber;
                 }
             }
-            if (!string.IsNullOrWhiteSpace(data.Name))
+
+            if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Name))
             {
-                if (string.IsNullOrWhiteSpace(video.Name) || (string.Equals(video.Name, Path.GetFileNameWithoutExtension(video.Path), StringComparison.OrdinalIgnoreCase) && !video.ProviderIds.Any()))
+                if (!string.IsNullOrWhiteSpace(data.Name))
                 {
-                    // Don't use the embedded name for extras because it will often be the same name as the movie
-                    if (!video.ExtraType.HasValue && !video.IsOwnedItem)
+                    if (string.IsNullOrWhiteSpace(video.Name) || (string.Equals(video.Name, Path.GetFileNameWithoutExtension(video.Path), StringComparison.OrdinalIgnoreCase) && !video.ProviderIds.Any()))
                     {
-                        video.Name = data.Name;
+                        // Don't use the embedded name for extras because it will often be the same name as the movie
+                        if (!video.ExtraType.HasValue && !video.IsOwnedItem)
+                        {
+                            video.Name = data.Name;
+                        }
                     }
                 }
             }
@@ -433,7 +437,7 @@ namespace MediaBrowser.Providers.MediaInfo
                 video.ProductionYear = video.PremiereDate.Value.ToLocalTime().Year;
             }
 
-            if (!video.LockedFields.Contains(MetadataFields.Overview))
+            if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Overview))
             {
                 if (string.IsNullOrWhiteSpace(video.Overview) || isFullRefresh)
                 {
@@ -446,7 +450,7 @@ namespace MediaBrowser.Providers.MediaInfo
         {
             var isFullRefresh = options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh;
 
-            if (!video.LockedFields.Contains(MetadataFields.Cast))
+            if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Cast))
             {
                 if (isFullRefresh || _libraryManager.GetPeople(video).Count == 0)
                 {