diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs index 73b688427..c752c3a4b 100644 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs +++ b/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs @@ -9,6 +9,7 @@ namespace NzbDrone.Core.IndexerSearch.Definitions public string ImdbId { get; set; } public int? TmdbId { get; set; } public int? TraktId { get; set; } + public int? Year { get; set; } public override bool RssSearch { @@ -48,6 +49,11 @@ namespace NzbDrone.Core.IndexerSearch.Definitions builder = builder.Append($" IMDbId:[{ImdbId}]"); } + if (Year.HasValue) + { + builder = builder.Append($" Year:[{Year}]"); + } + if (TmdbId.HasValue) { builder = builder.Append($" TMDbId:[{TmdbId}]"); diff --git a/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs b/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs index 4b49a4f23..14e4bba7c 100644 --- a/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs @@ -59,6 +59,7 @@ namespace NzbDrone.Core.IndexerSearch searchSpec.ImdbId = request.imdbid; searchSpec.TmdbId = request.tmdbid; searchSpec.TraktId = request.traktid; + searchSpec.Year = request.year; return new NewznabResults { Releases = await Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec) }; } diff --git a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs index 5e5526492..6a369db40 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs @@ -46,11 +46,11 @@ namespace NzbDrone.Core.Indexers.Cardigann var variables = GetQueryVariableDefaults(searchCriteria); variables[".Query.Movie"] = null; - variables[".Query.Year"] = null; + variables[".Query.Year"] = searchCriteria.Year?.ToString() ?? null; variables[".Query.IMDBID"] = searchCriteria.FullImdbId; variables[".Query.IMDBIDShort"] = searchCriteria.ImdbId; - variables[".Query.TMDBID"] = searchCriteria.TmdbId; - variables[".Query.TraktID"] = searchCriteria.TraktId; + variables[".Query.TMDBID"] = searchCriteria.TmdbId?.ToString() ?? null; + variables[".Query.TraktID"] = searchCriteria.TraktId?.ToString() ?? null; pageableRequests.Add(GetRequest(variables)); @@ -81,13 +81,13 @@ namespace NzbDrone.Core.Indexers.Cardigann variables[".Query.Series"] = null; variables[".Query.Ep"] = searchCriteria.Episode; - variables[".Query.Season"] = searchCriteria.Season; + variables[".Query.Season"] = searchCriteria.Season?.ToString() ?? null; variables[".Query.IMDBID"] = searchCriteria.FullImdbId; variables[".Query.IMDBIDShort"] = searchCriteria.ImdbId; - variables[".Query.TVDBID"] = searchCriteria.TvdbId; - variables[".Query.TVRageID"] = searchCriteria.RId; - variables[".Query.TVMazeID"] = searchCriteria.TvMazeId; - variables[".Query.TraktID"] = searchCriteria.TraktId; + variables[".Query.TVDBID"] = searchCriteria.TvdbId?.ToString() ?? null; + variables[".Query.TVRageID"] = searchCriteria.RId?.ToString() ?? null; + variables[".Query.TVMazeID"] = searchCriteria.TvMazeId?.ToString() ?? null; + variables[".Query.TraktID"] = searchCriteria.TraktId?.ToString() ?? null; variables[".Query.Episode"] = searchCriteria.EpisodeSearchString; pageableRequests.Add(GetRequest(variables)); @@ -127,8 +127,8 @@ namespace NzbDrone.Core.Indexers.Cardigann variables[".Query.Type"] = searchCriteria.SearchType; variables[".Query.Q"] = searchCriteria.SearchTerm; variables[".Query.Categories"] = searchCriteria.Categories; - variables[".Query.Limit"] = searchCriteria.Limit; - variables[".Query.Offset"] = searchCriteria.Offset; + variables[".Query.Limit"] = searchCriteria.Limit?.ToString() ?? null; + variables[".Query.Offset"] = searchCriteria.Offset?.ToString() ?? null; variables[".Query.Extended"] = null; variables[".Query.APIKey"] = null;