diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs index c752c3a4b..e576d8eee 100644 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs +++ b/src/NzbDrone.Core/IndexerSearch/Definitions/MovieSearchCriteria.cs @@ -10,6 +10,7 @@ namespace NzbDrone.Core.IndexerSearch.Definitions public int? TmdbId { get; set; } public int? TraktId { get; set; } public int? Year { get; set; } + public string Genre { get; set; } public override bool RssSearch { @@ -64,6 +65,11 @@ namespace NzbDrone.Core.IndexerSearch.Definitions builder = builder.Append($" TraktId:[{TraktId}]"); } + if (Genre.IsNotNullOrWhiteSpace()) + { + builder = builder.Append($" Genre:[{Genre}]"); + } + return builder.ToString().Trim(); } } diff --git a/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs b/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs index 863432e4a..c274e95f2 100644 --- a/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/ReleaseSearchService.cs @@ -60,6 +60,7 @@ namespace NzbDrone.Core.IndexerSearch searchSpec.TmdbId = request.tmdbid; searchSpec.TraktId = request.traktid; searchSpec.Year = request.year; + searchSpec.Genre = request.genre; return new NewznabResults { Releases = await Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec) }; } diff --git a/src/NzbDrone.Core/Indexers/IndexerCapabilities.cs b/src/NzbDrone.Core/Indexers/IndexerCapabilities.cs index 6a455b96c..3d58c2739 100644 --- a/src/NzbDrone.Core/Indexers/IndexerCapabilities.cs +++ b/src/NzbDrone.Core/Indexers/IndexerCapabilities.cs @@ -26,6 +26,7 @@ namespace NzbDrone.Core.Indexers ImdbTitle, ImdbYear, TraktId, + Genre } public enum MusicSearchParam @@ -75,6 +76,7 @@ namespace NzbDrone.Core.Indexers public bool MovieSearchImdbAvailable => MovieSearchParams.Contains(MovieSearchParam.ImdbId); public bool MovieSearchTmdbAvailable => MovieSearchParams.Contains(MovieSearchParam.TmdbId); public bool MovieSearchTraktAvailable => MovieSearchParams.Contains(MovieSearchParam.TraktId); + public bool MovieSearchGenreAvailable => MovieSearchParams.Contains(MovieSearchParam.Genre); public List MusicSearchParams; public bool MusicSearchAvailable => MusicSearchParams.Count > 0; @@ -321,6 +323,16 @@ namespace NzbDrone.Core.Indexers parameters.Add("tmdbid"); } + if (MovieSearchTraktAvailable) + { + parameters.Add("traktid"); + } + + if (MovieSearchGenreAvailable) + { + parameters.Add("genre"); + } + return string.Join(",", parameters); }