From 17ea0217f57f4439d65edcfd2091f1bb47570438 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 25 Feb 2015 13:11:49 -0500 Subject: [PATCH] handle incomplete local metadata --- .../Manager/MetadataService.cs | 10 +++++++++- .../Movies/MovieMetadataService.cs | 17 +++++++++++++++++ .../TV/SeriesMetadataService.cs | 17 +++++++++++++++++ .../LiveTv/LiveTvDtoService.cs | 2 +- 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index ab6cb89a62..523d393759 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/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 userDataList, CancellationToken cancellationToken) { var hasUserData = item as IHasUserData; diff --git a/MediaBrowser.Providers/Movies/MovieMetadataService.cs b/MediaBrowser.Providers/Movies/MovieMetadataService.cs index af9970b699..172ae6814c 100644 --- a/MediaBrowser.Providers/Movies/MovieMetadataService.cs +++ b/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); + } } } diff --git a/MediaBrowser.Providers/TV/SeriesMetadataService.cs b/MediaBrowser.Providers/TV/SeriesMetadataService.cs index df06525c1f..a5959f0b75 100644 --- a/MediaBrowser.Providers/TV/SeriesMetadataService.cs +++ b/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); + } } } diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs index f1bb5c13ae..6473d10d66 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/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) {