From 70c82286050b9b5f4c807242150ff36b33e2ad38 Mon Sep 17 00:00:00 2001 From: Leonardo Galli Date: Thu, 5 Jan 2017 13:16:23 +0100 Subject: [PATCH] Updated Newznab to correctly identify movie search capabilities --- .../Indexers/Newznab/NewznabCapabilitiesProvider.cs | 11 +++++++++++ .../Indexers/Newznab/NewznabRequestGenerator.cs | 10 +++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabCapabilitiesProvider.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabCapabilitiesProvider.cs index 9cb004f67..c7343513c 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabCapabilitiesProvider.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabCapabilitiesProvider.cs @@ -30,6 +30,7 @@ namespace NzbDrone.Core.Indexers.Newznab public NewznabCapabilities GetCapabilities(NewznabSettings indexerSettings) { var key = indexerSettings.ToJson(); + _capabilitiesCache.Clear(); var capabilities = _capabilitiesCache.Get(key, () => FetchCapabilities(indexerSettings), TimeSpan.FromDays(7)); return capabilities; @@ -98,6 +99,16 @@ namespace NzbDrone.Core.Indexers.Newznab capabilities.SupportedTvSearchParameters = xmlTvSearch.Attribute("supportedParams").Value.Split(','); capabilities.SupportsAggregateIdSearch = true; } + var xmlMovieSearch = xmlSearching.Element("movie-search"); + if (xmlMovieSearch == null || xmlMovieSearch.Attribute("available").Value != "yes") + { + capabilities.SupportedMovieSearchParamters = null; + } + else if (xmlMovieSearch.Attribute("supportedParams") != null) + { + capabilities.SupportedMovieSearchParamters = xmlMovieSearch.Attribute("supportedParams").Value.Split(','); + capabilities.SupportsAggregateIdSearch = true; + } } var xmlCategories = xmlRoot.Element("categories"); diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs index 76030a2ec..518494923 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs @@ -92,9 +92,7 @@ namespace NzbDrone.Core.Indexers.Newznab var capabilities = _capabilitiesProvider.GetCapabilities(Settings); return capabilities.SupportedMovieSearchParamters != null && - capabilities.SupportedMovieSearchParamters.Contains("imdb") && - capabilities.SupportedMovieSearchParamters.Contains("imdbtitle") && - capabilities.SupportedMovieSearchParamters.Contains("imdbyear"); + capabilities.SupportedMovieSearchParamters.Contains("imdb"); } } @@ -131,6 +129,12 @@ namespace NzbDrone.Core.Indexers.Newznab pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "movie", string.Format("&imdbid={0}", searchCriteria.Movie.ImdbId.Substring(2)))); //strip off the "tt" - VERY HACKY } + else + { + //Let's try anyways with q parameter, worst case nothing found. + pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "search", + string.Format("&q={0}", searchCriteria.Movie.Title))); + } return pageableRequests; }