diff --git a/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListRequestGenerator.cs index f422fbf16..918a80815 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListRequestGenerator.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.Specialized; +using System.Globalization; using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; @@ -25,6 +26,25 @@ public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCrit { parameters.Set("action", "search-torrents"); + var searchQuery = searchCriteria.SanitizedSearchTerm.Trim(); + + if (DateTime.TryParseExact($"{searchCriteria.Season} {searchCriteria.Episode}", "yyyy MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var showDate)) + { + searchQuery = $"{searchQuery} {showDate:yyyy.MM.dd}".Trim(); + } + else + { + if (searchCriteria.Season.HasValue) + { + parameters.Set("season", searchCriteria.Season.ToString()); + } + + if (searchCriteria.Episode.IsNotNullOrWhiteSpace()) + { + parameters.Set("episode", searchCriteria.Episode); + } + } + if (searchCriteria.ImdbId.IsNotNullOrWhiteSpace()) { parameters.Set("type", "imdb"); @@ -33,17 +53,7 @@ public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCrit else if (searchCriteria.SearchTerm.IsNotNullOrWhiteSpace()) { parameters.Set("type", "name"); - parameters.Set("query", searchCriteria.SanitizedSearchTerm.Trim()); - } - - if (searchCriteria.Season.HasValue) - { - parameters.Set("season", searchCriteria.Season.ToString()); - } - - if (searchCriteria.Episode.IsNotNullOrWhiteSpace()) - { - parameters.Set("episode", searchCriteria.Episode); + parameters.Set("query", searchQuery); } }