From 15d3d08be73d0b34d866a793b9535c7775e53abf Mon Sep 17 00:00:00 2001 From: Seriox Date: Sun, 22 Mar 2020 00:06:22 +0100 Subject: [PATCH] TorrentSyndikat: Add wildcard to season only search. --- .../Indexers/TorrentSyndikat.cs | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/Jackett.Common/Indexers/TorrentSyndikat.cs b/src/Jackett.Common/Indexers/TorrentSyndikat.cs index 3145324e2..199071cb0 100644 --- a/src/Jackett.Common/Indexers/TorrentSyndikat.cs +++ b/src/Jackett.Common/Indexers/TorrentSyndikat.cs @@ -129,13 +129,11 @@ namespace Jackett.Common.Indexers protected override async Task> PerformQuery(TorznabQuery query) { var releases = new List(); - - var searchString = query.GetQueryString(); - var searchUrl = SearchUrl; - var queryCollection = new NameValueCollection(); - - queryCollection.Add("incldead", "1"); - queryCollection.Add("rel_type", "0"); // Alle + var queryCollection = new NameValueCollection + { + {"incldead", "1"}, + {"rel_type", "0"} // Alle + }; if (query.ImdbID != null) { @@ -146,20 +144,30 @@ namespace Jackett.Common.Indexers { queryCollection.Add("searchin", "title"); - if (!string.IsNullOrWhiteSpace(searchString)) + if (!string.IsNullOrWhiteSpace(query.GetQueryString())) { // use AND+wildcard operator to avoid getting to many useless results - var searchStringArray = Regex.Split(searchString.Trim(), "[ _.-]+", RegexOptions.Compiled).ToList(); - searchStringArray = searchStringArray.Select(x => "+" + x).ToList(); // add AND operators - var searchStringFinal = string.Join(" ", searchStringArray); - queryCollection.Add("search", searchStringFinal); + var searchStringArray = Regex.Split( + query.SanitizedSearchTerm, "[ _.-]+", + RegexOptions.Compiled).Select(term => $"+{term}"); + + // If only season search add * wildcard to get all episodes + var tvEpisode = query.GetEpisodeSearchString(); + if (!string.IsNullOrWhiteSpace(tvEpisode)) + { + if(tvEpisode.StartsWith("S") && !tvEpisode.Contains("E")) + tvEpisode += "*"; + searchStringArray = searchStringArray.Append($"+{tvEpisode}"); + } + + queryCollection.Add("search", string.Join(" ", searchStringArray)); } } foreach (var cat in MapTorznabCapsToTrackers(query)) queryCollection.Add("c" + cat, "1"); - searchUrl += "?" + queryCollection.GetQueryString(); + var searchUrl = SearchUrl + "?" + queryCollection.GetQueryString(); var results = await RequestStringWithCookiesAndRetry(searchUrl);