From e9b604d3c43ac6592190ec3648fa039a68badd6f Mon Sep 17 00:00:00 2001 From: kaso17 Date: Fri, 11 Aug 2017 18:13:22 +0200 Subject: [PATCH] fix potato API --- src/Jackett/Indexers/BaseIndexer.cs | 24 ++++++++++--------- src/Jackett/Models/DTO/ApiSearch.cs | 6 ++++- src/Jackett/Models/TorznabQuery.cs | 4 ++-- src/Jackett/Services/IndexerManagerService.cs | 2 ++ 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/Jackett/Indexers/BaseIndexer.cs b/src/Jackett/Indexers/BaseIndexer.cs index a3a5dd81e..7c10970bc 100644 --- a/src/Jackett/Indexers/BaseIndexer.cs +++ b/src/Jackett/Indexers/BaseIndexer.cs @@ -190,21 +190,23 @@ namespace Jackett.Indexers if (query == null) return false; var caps = TorznabCaps; - if (!caps.SearchAvailable && query.IsSearch) - return false; - if (!caps.TVSearchAvailable && query.IsTVSearch) - return false; - if (!caps.MovieSearchAvailable && query.IsMovieSearch) - return false; - if (!caps.SupportsTVRageSearch && query.IsTVRageSearch) - return false; - if (!caps.SupportsImdbSearch && query.IsImdbQuery) - return false; if (query.HasSpecifiedCategories) if (!caps.SupportsCategories(query.Categories)) return false; - return true; + + if (caps.SearchAvailable && query.IsSearch) + return true; + if (caps.TVSearchAvailable && query.IsTVSearch) + return true; + if (caps.MovieSearchAvailable && query.IsMovieSearch) + return true; + if (caps.SupportsTVRageSearch && query.IsTVRageSearch) + return true; + if (caps.SupportsImdbSearch && query.IsImdbQuery) + return true; + + return false; } public void Unconfigure() diff --git a/src/Jackett/Models/DTO/ApiSearch.cs b/src/Jackett/Models/DTO/ApiSearch.cs index d43ac75ec..3d486811f 100644 --- a/src/Jackett/Models/DTO/ApiSearch.cs +++ b/src/Jackett/Models/DTO/ApiSearch.cs @@ -11,6 +11,7 @@ namespace Jackett.Models.DTO public static TorznabQuery ToTorznabQuery(ApiSearch request) { var stringQuery = new TorznabQuery(); + stringQuery.QueryType = "search"; var queryStr = request.Query; if (queryStr != null) @@ -30,7 +31,10 @@ namespace Jackett.Models.DTO } queryStr = queryStr.Trim(); } - + else + { + queryStr = ""; // empty string search is interpreted as null + } stringQuery.SearchTerm = queryStr; stringQuery.Categories = request.Category == 0 ? new int[0] : new int[1] { request.Category }; diff --git a/src/Jackett/Models/TorznabQuery.cs b/src/Jackett/Models/TorznabQuery.cs index ae0e858c2..1e3d0af73 100644 --- a/src/Jackett/Models/TorznabQuery.cs +++ b/src/Jackett/Models/TorznabQuery.cs @@ -35,7 +35,7 @@ namespace Jackett.Models { get { - return (QueryStringParts != null && QueryStringParts.Length > 0); + return QueryType == "search"; } } @@ -51,7 +51,7 @@ namespace Jackett.Models { get { - return QueryType == "movie"; + return QueryType == "movie" || (QueryType == "TorrentPotato" && !string.IsNullOrWhiteSpace(SearchTerm)); } } diff --git a/src/Jackett/Services/IndexerManagerService.cs b/src/Jackett/Services/IndexerManagerService.cs index 08e3daf43..b0da4d7d5 100644 --- a/src/Jackett/Services/IndexerManagerService.cs +++ b/src/Jackett/Services/IndexerManagerService.cs @@ -204,6 +204,8 @@ namespace Jackett.Services { var indexer = GetIndexer(name); var browseQuery = new TorznabQuery(); + browseQuery.QueryType = "search"; + browseQuery.SearchTerm = ""; browseQuery.IsTest = true; var results = await indexer.ResultsForQuery(browseQuery); logger.Info(string.Format("Found {0} releases from {1}", results.Count(), indexer.DisplayName));