소스 검색

Merge pull request #2138 from mark-monteiro/fix-episode-search

Fix Tvdb Provider Episode Search
Vasily 5 년 전
부모
커밋
54dbdc695a
3개의 변경된 파일11개의 추가작업 그리고 6개의 파일을 삭제
  1. 1 0
      CONTRIBUTORS.md
  2. 2 3
      MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs
  3. 8 3
      MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs

+ 1 - 0
CONTRIBUTORS.md

@@ -30,6 +30,7 @@
  - [Khinenw](https://github.com/HelloWorld017)
  - [fhriley](https://github.com/fhriley)
  - [nevado](https://github.com/nevado)
+ - [mark-monteiro](https://github.com/mark-monteiro)
 
 # Emby Contributors
 

+ 2 - 3
MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs

@@ -35,9 +35,8 @@ namespace MediaBrowser.Providers.TV.TheTVDB
         {
             var list = new List<RemoteSearchResult>();
 
-            // The search query must either provide an episode number or date
-            if (!searchInfo.IndexNumber.HasValue
-                || !searchInfo.PremiereDate.HasValue
+            // Either an episode number or date must be provided; and the dictionary of provider ids must be valid
+            if ((searchInfo.IndexNumber == null && searchInfo.PremiereDate == null)
                 || !TvdbSeriesProvider.IsValidSeries(searchInfo.SeriesProviderIds))
             {
                 return list;

+ 8 - 3
MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs

@@ -170,11 +170,16 @@ namespace MediaBrowser.Providers.TV.TheTVDB
             return result?.Data.First().Id.ToString();
         }
 
+        /// <summary>
+        /// Check whether a dictionary of provider IDs includes an entry for a valid TV metadata provider.
+        /// </summary>
+        /// <param name="seriesProviderIds">The dictionary to check.</param>
+        /// <returns>True, if the dictionary contains a valid TV provider ID, otherwise false.</returns>
         internal static bool IsValidSeries(Dictionary<string, string> seriesProviderIds)
         {
-            return seriesProviderIds.TryGetValue(MetadataProviders.Tvdb.ToString(), out _) ||
-                   seriesProviderIds.TryGetValue(MetadataProviders.Imdb.ToString(), out _) ||
-                   seriesProviderIds.TryGetValue(MetadataProviders.Zap2It.ToString(), out _);
+            return seriesProviderIds.ContainsKey(MetadataProviders.Tvdb.ToString()) ||
+                   seriesProviderIds.ContainsKey(MetadataProviders.Imdb.ToString()) ||
+                   seriesProviderIds.ContainsKey(MetadataProviders.Zap2It.ToString());
         }
 
         /// <summary>