Selaa lähdekoodia

handle incomplete local metadata

Luke Pulverenti 10 vuotta sitten
vanhempi
sitoutus
17ea0217f5

+ 9 - 1
MediaBrowser.Providers/Manager/MetadataService.cs

@@ -397,7 +397,10 @@ namespace MediaBrowser.Providers.Manager
                         refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport;
 
                         // Only one local provider allowed per item
-                        hasLocalMetadata = true;
+                        if (IsFullLocalMetadata(localItem.Item))
+                        {
+                            hasLocalMetadata = true;
+                        }
                         successfulProviderCount++;
                         break;
                     }
@@ -473,6 +476,11 @@ namespace MediaBrowser.Providers.Manager
             return refreshResult;
         }
 
+        protected virtual bool IsFullLocalMetadata(TItemType item)
+        {
+            return true;
+        }
+
         private async Task ImportUserData(TItemType item, List<UserItemData> userDataList, CancellationToken cancellationToken)
         {
             var hasUserData = item as IHasUserData;

+ 17 - 0
MediaBrowser.Providers/Movies/MovieMetadataService.cs

@@ -33,5 +33,22 @@ namespace MediaBrowser.Providers.Movies
                 target.TmdbCollectionName = source.TmdbCollectionName;
             }
         }
+
+        protected override bool IsFullLocalMetadata(Movie item)
+        {
+            if (string.IsNullOrWhiteSpace(item.Name))
+            {
+                return false;
+            }
+            if (string.IsNullOrWhiteSpace(item.Overview))
+            {
+                return false;
+            }
+            if (!item.ProductionYear.HasValue)
+            {
+                return false;
+            }
+            return base.IsFullLocalMetadata(item);
+        }
     }
 }

+ 17 - 0
MediaBrowser.Providers/TV/SeriesMetadataService.cs

@@ -74,5 +74,22 @@ namespace MediaBrowser.Providers.TV
                 await provider.Run(item, CancellationToken.None).ConfigureAwait(false);
             }
         }
+
+        protected override bool IsFullLocalMetadata(Series item)
+        {
+            if (string.IsNullOrWhiteSpace(item.Name))
+            {
+                return false;
+            }
+            if (string.IsNullOrWhiteSpace(item.Overview))
+            {
+                return false;
+            }
+            if (!item.ProductionYear.HasValue)
+            {
+                return false;
+            }
+            return base.IsFullLocalMetadata(item);
+        }
     }
 }

+ 1 - 1
MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs

@@ -442,7 +442,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
             return null;
         }
 
-        private const string InternalVersionNumber = "3";
+        private const string InternalVersionNumber = "4";
 
         public Guid GetInternalChannelId(string serviceName, string externalId)
         {