From 740dc7848c32d5ebbeb6814eb2578d42f329de1a Mon Sep 17 00:00:00 2001 From: Garfield69 Date: Tue, 9 Aug 2022 13:55:29 +1200 Subject: [PATCH] iiptorrents: add genre query and results --- src/Jackett.Common/Indexers/IPTorrents.cs | 58 +++++++++++++++++++++-- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/src/Jackett.Common/Indexers/IPTorrents.cs b/src/Jackett.Common/Indexers/IPTorrents.cs index 0d7fdd890..9d288d30a 100644 --- a/src/Jackett.Common/Indexers/IPTorrents.cs +++ b/src/Jackett.Common/Indexers/IPTorrents.cs @@ -61,11 +61,11 @@ namespace Jackett.Common.Indexers { TvSearchParams = new List { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre }, MovieSearchParams = new List { - MovieSearchParam.Q, MovieSearchParam.ImdbId + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre }, MusicSearchParams = new List { @@ -199,6 +199,48 @@ namespace Jackett.Common.Indexers { var releases = new List(); + var ValidList = new List() { + "action", + "adventure", + "animation", + "biography", + "comedy", + "crime", + "documentary", + "drama", + "family", + "fantasy", + "game-show", + "history", + "horror", + "music", + "musical", + "mystery", + "news", + "reality-tv", + "romance", + "sci-fi", + "sitcom", + "sport", + "talk-show", + "thriller", + "war", + "western" + }; + + + /* notes: + * IPTorrents can search for genre (tags) using the default title&tags search + * qf= + * "" = Title and Tags + * ti = Title + * ta = Tags + * all = Title, Tags & Description + * adv = Advanced + * + * But only movies and tv have tags. + */ + var qc = new NameValueCollection(); @@ -212,7 +254,11 @@ namespace Jackett.Common.Indexers if (query.IsImdbQuery) qc.Add("q", query.ImdbID); - else if (!string.IsNullOrWhiteSpace(query.GetQueryString())) + else + if (query.IsGenreQuery) + qc.Add("q", query.GetQueryString() + " " + query.Genre); + else + if (!string.IsNullOrWhiteSpace(query.GetQueryString())) qc.Add("q", query.GetQueryString()); foreach (var cat in MapTorznabCapsToTrackers(query)) @@ -258,6 +304,9 @@ namespace Jackett.Common.Indexers var description = descrSplit.Length > 1 ? "Tags: " + descrSplit.First().Trim() : ""; description += dateSplit.Length > 1 ? " Uploaded by: " + dateSplit.Last().Trim() : ""; + char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' }; + var releaseGenres = ValidList.Intersect(description.ToLower().Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries)).ToList(); + var catIcon = row.QuerySelector("td:nth-of-type(1) a"); if (catIcon == null) // Torrents - Category column == Text or Code @@ -299,6 +348,9 @@ namespace Jackett.Common.Indexers MinimumRatio = 1, MinimumSeedTime = 1209600 // 336 hours }; + if (release.Genres == null) + release.Genres = new List(); + release.Genres = releaseGenres; releases.Add(release); }