iiptorrents: add genre query and results

This commit is contained in:
Garfield69
2022-08-09 13:55:29 +12:00
parent 2fa84f072c
commit 740dc7848c

View File

@@ -61,11 +61,11 @@ namespace Jackett.Common.Indexers
{
TvSearchParams = new List<TvSearchParam>
{
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre
},
MovieSearchParams = new List<MovieSearchParam>
{
MovieSearchParam.Q, MovieSearchParam.ImdbId
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre
},
MusicSearchParams = new List<MusicSearchParam>
{
@@ -199,6 +199,48 @@ namespace Jackett.Common.Indexers
{
var releases = new List<ReleaseInfo>();
var ValidList = new List<string>() {
"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<string>();
release.Genres = releaseGenres;
releases.Add(release);
}