From 4e7a2a3ed474adb009b56876890f85aa78d896ad Mon Sep 17 00:00:00 2001 From: Qstick Date: Fri, 22 Sep 2017 23:35:49 -0400 Subject: [PATCH] Add support for searches in newznab if indexer doesnt support audio params (Jackett) --- .../Newznab/NewznabRequestGenerator.cs | 59 +++++++++++++------ 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs index 207613c90..5d98a4d75 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs @@ -67,10 +67,25 @@ namespace NzbDrone.Core.Indexers.Newznab { var pageableRequests = new IndexerPageableRequestChain(); - AddAudioPageableRequests(pageableRequests, - string.Format("&artist={0}&album={1}", - searchCriteria.Artist.Name, - searchCriteria.AlbumTitle)); + if (SupportsAudioSearch) + { + AddAudioPageableRequests(pageableRequests, searchCriteria, + string.Format("&artist={0}&album={1}", + searchCriteria.Artist.Name, + searchCriteria.AlbumTitle)); + } + + if (SupportsSearch) + { + pageableRequests.AddTier(); + + pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "search", + string.Format("&q={0}", + NewsnabifyTitle(string.Format("{0} - {1}", + searchCriteria.Artist.Name, + searchCriteria.AlbumTitle))))); + + } return pageableRequests; } @@ -79,25 +94,35 @@ namespace NzbDrone.Core.Indexers.Newznab { var pageableRequests = new IndexerPageableRequestChain(); - AddAudioPageableRequests(pageableRequests, - string.Format("&artist={0}", - searchCriteria.Artist.Name)); - - return pageableRequests; - } - private void AddAudioPageableRequests(IndexerPageableRequestChain chain, string parameters) - { if (SupportsAudioSearch) { - chain.AddTier(); - - chain.Add(GetPagedRequests(MaxPages, Settings.Categories, "music", + AddAudioPageableRequests(pageableRequests, searchCriteria, + string.Format("&artist={0}", + searchCriteria.Artist.Name)); + } + + if (SupportsSearch) + { + pageableRequests.AddTier(); + + pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "search", string.Format("&q={0}", - parameters))); - + NewsnabifyTitle(searchCriteria.Artist.Name)))); + } + + return pageableRequests; + } + + private void AddAudioPageableRequests(IndexerPageableRequestChain chain, SearchCriteriaBase searchCriteria, string parameters) + { + chain.AddTier(); + + chain.Add(GetPagedRequests(MaxPages, Settings.Categories, "music", + string.Format("&q={0}", + parameters))); } private IEnumerable GetPagedRequests(int maxPages, IEnumerable categories, string searchType, string parameters)