From 9f5cf9de0c60310f1f15f777ecadc3fa39696f60 Mon Sep 17 00:00:00 2001 From: softworkz Date: Sun, 18 Sep 2016 06:27:17 +0200 Subject: [PATCH] Added MetadataResult.QueriedById property --- MediaBrowser.Controller/Providers/MetadataResult.cs | 1 + MediaBrowser.Providers/Manager/MetadataService.cs | 2 +- MediaBrowser.Providers/Omdb/OmdbItemProvider.cs | 8 ++++++-- MediaBrowser.Providers/TV/Omdb/OmdbEpisodeProvider.cs | 3 ++- .../TV/TheMovieDb/MovieDbEpisodeProvider.cs | 1 + .../TV/TheMovieDb/MovieDbSeriesProvider.cs | 6 ++++-- MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs | 1 + MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs | 2 ++ 8 files changed, 18 insertions(+), 6 deletions(-) diff --git a/MediaBrowser.Controller/Providers/MetadataResult.cs b/MediaBrowser.Controller/Providers/MetadataResult.cs index f6ca9405a0..99402a9694 100644 --- a/MediaBrowser.Controller/Providers/MetadataResult.cs +++ b/MediaBrowser.Controller/Providers/MetadataResult.cs @@ -21,6 +21,7 @@ namespace MediaBrowser.Controller.Providers public bool HasMetadata { get; set; } public T Item { get; set; } public string ResultLanguage { get; set; } + public bool QueriedById { get; set; } public void AddPerson(PersonInfo p) { if (People == null) diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index fa9a725a72..9c9cf5520e 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -696,7 +696,7 @@ namespace MediaBrowser.Providers.Manager // prioritize results with matching ResultLanguage foreach (var result in results) { - if (!string.IsNullOrEmpty(result.ResultLanguage) && result.ResultLanguage == id.MetadataLanguage) + if (!string.IsNullOrEmpty(result.ResultLanguage) && result.ResultLanguage == id.MetadataLanguage && result.QueriedById) { orderedResults.Add(result); } diff --git a/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs b/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs index 914b775af7..428bde2f28 100644 --- a/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs +++ b/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs @@ -212,13 +212,15 @@ namespace MediaBrowser.Providers.Omdb { var result = new MetadataResult { - Item = new Series() + Item = new Series(), + QueriedById = true }; var imdbId = info.GetProviderId(MetadataProviders.Imdb); if (string.IsNullOrWhiteSpace(imdbId)) { imdbId = await GetSeriesImdbId(info, cancellationToken).ConfigureAwait(false); + result.QueriedById = false; } if (!string.IsNullOrEmpty(imdbId)) @@ -251,13 +253,15 @@ namespace MediaBrowser.Providers.Omdb { var result = new MetadataResult { - Item = new T() + Item = new T(), + QueriedById = true }; var imdbId = info.GetProviderId(MetadataProviders.Imdb); if (string.IsNullOrWhiteSpace(imdbId)) { imdbId = await GetMovieImdbId(info, cancellationToken).ConfigureAwait(false); + result.QueriedById = false; } if (!string.IsNullOrEmpty(imdbId)) diff --git a/MediaBrowser.Providers/TV/Omdb/OmdbEpisodeProvider.cs b/MediaBrowser.Providers/TV/Omdb/OmdbEpisodeProvider.cs index 621f665146..78bce241f4 100644 --- a/MediaBrowser.Providers/TV/Omdb/OmdbEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/Omdb/OmdbEpisodeProvider.cs @@ -43,7 +43,8 @@ namespace MediaBrowser.Providers.TV { var result = new MetadataResult() { - Item = new Episode() + Item = new Episode(), + QueriedById = true }; // Allowing this will dramatically increase scan times diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs index db49ef075e..748124c033 100644 --- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs @@ -91,6 +91,7 @@ namespace MediaBrowser.Providers.TV var response = await GetEpisodeInfo(seriesTmdbId, seasonNumber.Value, episodeNumber.Value, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); result.HasMetadata = true; + result.QueriedById = true; if (!string.IsNullOrEmpty(response.overview)) { diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs index 13a637be84..fb06780293 100644 --- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs @@ -119,6 +119,7 @@ namespace MediaBrowser.Providers.TV public async Task> GetMetadata(SeriesInfo info, CancellationToken cancellationToken) { var result = new MetadataResult(); + result.QueriedById = true; var tmdbId = info.GetProviderId(MetadataProviders.Tmdb); @@ -154,6 +155,7 @@ namespace MediaBrowser.Providers.TV if (string.IsNullOrEmpty(tmdbId)) { + result.QueriedById = false; var searchResults = await new MovieDbSearch(_logger, _jsonSerializer, _libraryManager).GetSearchResults(info, cancellationToken).ConfigureAwait(false); var searchResult = searchResults.FirstOrDefault(); @@ -194,7 +196,7 @@ namespace MediaBrowser.Providers.TV tmdbId = seriesInfo.id.ToString(_usCulture); dataFilePath = GetDataFilePath(tmdbId, language); - _fileSystem.CreateDirectory(Path.GetDirectoryName(dataFilePath)); + _fileSystem.CreateDirectory(Path.GetDirectoryName(dataFilePath)); _jsonSerializer.SerializeToFile(seriesInfo, dataFilePath); await EnsureSeriesInfo(tmdbId, language, cancellationToken).ConfigureAwait(false); @@ -326,7 +328,7 @@ namespace MediaBrowser.Providers.TV var dataFilePath = GetDataFilePath(id, preferredMetadataLanguage); - _fileSystem.CreateDirectory(Path.GetDirectoryName(dataFilePath)); + _fileSystem.CreateDirectory(Path.GetDirectoryName(dataFilePath)); _jsonSerializer.SerializeToFile(mainResult, dataFilePath); } diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs index 807db61808..41a2282d80 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs @@ -108,6 +108,7 @@ namespace MediaBrowser.Providers.TV public async Task> GetMetadata(EpisodeInfo searchInfo, CancellationToken cancellationToken) { var result = new MetadataResult(); + result.QueriedById = true; if (TvdbSeriesProvider.IsValidSeries(searchInfo.SeriesProviderIds) && (searchInfo.IndexNumber.HasValue || searchInfo.PremiereDate.HasValue)) diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs index 3d532b2fcf..4ac9e68361 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs @@ -93,9 +93,11 @@ namespace MediaBrowser.Providers.TV public async Task> GetMetadata(SeriesInfo itemId, CancellationToken cancellationToken) { var result = new MetadataResult(); + result.QueriedById = true; if (!IsValidSeries(itemId.ProviderIds)) { + result.QueriedById = false; await Identify(itemId).ConfigureAwait(false); }