anthelion: implement imdb and tmdb search. #7923 (#13195)

This commit is contained in:
Diego Heras
2022-04-24 21:11:49 +02:00
committed by GitHub
parent b7ac4af666
commit 86530ba35f

View File

@@ -44,7 +44,7 @@ namespace Jackett.Common.Indexers
}, },
MovieSearchParams = new List<MovieSearchParam> MovieSearchParams = new List<MovieSearchParam>
{ {
MovieSearchParam.Q MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId
} }
}, },
configService: configService, configService: configService,
@@ -91,21 +91,26 @@ namespace Jackett.Common.Indexers
{ {
var releases = new List<ReleaseInfo>(); var releases = new List<ReleaseInfo>();
// TODO: IMDB search is available but it requires to parse the details page
var qc = new NameValueCollection var qc = new NameValueCollection
{ {
{ "order_by", "time" }, { "order_by", "time" },
{ "order_way", "desc" }, { "order_way", "desc" },
{ "action", "basic" }, { "action", "basic" },
{ "searchsubmit", "1" }, { "searchsubmit", "1" }
{ "searchstr", query.IsImdbQuery ? query.ImdbID : query.GetQueryString() }
}; };
if (query.IsImdbQuery)
qc.Add("imdb", query.ImdbID);
else if (query.IsTmdbQuery)
qc.Add("tmdb", query.TmdbID.ToString());
else
qc.Add("searchstr", query.GetQueryString());
var catList = MapTorznabCapsToTrackers(query); var catList = MapTorznabCapsToTrackers(query);
foreach (var cat in catList) foreach (var cat in catList)
qc.Add($"filter_cat[{cat}]", "1"); qc.Add($"filter_cat[{cat}]", "1");
// remove . as not used in titles // remove . as not used in titles
var searchUrl = BrowseUrl + "?" + qc.GetQueryString().Replace(".", " "); var searchUrl = BrowseUrl + "?" + qc.GetQueryString().Replace(".", " ");
var results = await RequestWithCookiesAsync(searchUrl); var results = await RequestWithCookiesAsync(searchUrl);
try try
@@ -147,10 +152,12 @@ namespace Jackett.Common.Indexers
} }
}; };
// TODO: TMDb is also available
var qImdb = row.QuerySelector("a[href^=\"https://www.imdb.com\"]"); var qImdb = row.QuerySelector("a[href^=\"https://www.imdb.com\"]");
var imdb = qImdb != null ? ParseUtil.GetImdbID(qImdb.GetAttribute("href").Split('/').Last()) : null; var imdb = qImdb != null ? ParseUtil.GetImdbID(qImdb.GetAttribute("href").Split('/').Last()) : null;
qImdb = row.QuerySelector("a[href^=\"https://www.themoviedb.org\"]");
var tmdb = qImdb != null ? ParseUtil.GetLongFromString(qImdb.GetAttribute("href").Split('/').Last()) : null;
var release = new ReleaseInfo var release = new ReleaseInfo
{ {
MinimumRatio = 1, MinimumRatio = 1,
@@ -163,6 +170,7 @@ namespace Jackett.Common.Indexers
Details = details, Details = details,
Guid = link, Guid = link,
Imdb = imdb, Imdb = imdb,
TMDb = tmdb,
Poster = poster, Poster = poster,
Seeders = seeders, Seeders = seeders,
Peers = leechers + seeders, Peers = leechers + seeders,