From 7a183ebb83bb33e0b13cbcf4679307ab068e5c17 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 7 Mar 2023 03:48:56 +0200 Subject: [PATCH] avistaz/privatehd: add support for searching by ImdbId/TmdbId/TvdbId (#14135) --- .../Indexers/Abstract/AvistazTracker.cs | 18 +++++++++++++++++- src/Jackett.Common/Indexers/AvistaZ.cs | 16 +++++++++------- src/Jackett.Common/Indexers/PrivateHD.cs | 7 ++++--- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs b/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs index 15ddcb1c9..43c025390 100644 --- a/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs +++ b/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs @@ -35,7 +35,9 @@ namespace Jackett.Common.Indexers.Abstract private new ConfigurationDataAvistazTracker configData => (ConfigurationDataAvistazTracker)base.configData; // hook to adjust the search term - protected virtual string GetSearchTerm(TorznabQuery query) => $"{query.SearchTerm} {query.GetEpisodeSearchString()}"; + protected virtual string GetSearchTerm(TorznabQuery query) => $"{query.SearchTerm} {GetEpisodeSearchTerm(query)}".Trim(); + + protected virtual string GetEpisodeSearchTerm(TorznabQuery query) => query.GetEpisodeSearchString().Trim(); // hook to adjust the search category protected virtual List> GetSearchQueryParameters(TorznabQuery query) @@ -75,7 +77,20 @@ namespace Jackett.Common.Indexers.Abstract // https://privatehd.to/api/v1/jackett/torrents?tmdb=1234 // https://privatehd.to/api/v1/jackett/torrents?tvdb=3653 if (query.IsImdbQuery) + { qc.Add("imdb", query.ImdbID); + qc.Add("search", GetEpisodeSearchTerm(query)); + } + else if (query.IsTmdbQuery) + { + qc.Add("tmdb", query.TmdbID.ToString()); + qc.Add("search", GetEpisodeSearchTerm(query)); + } + else if (query.IsTvdbSearch) + { + qc.Add("tvdb", query.TvdbID.ToString()); + qc.Add("search", GetEpisodeSearchTerm(query)); + } else qc.Add("search", GetSearchTerm(query).Trim()); @@ -176,6 +191,7 @@ namespace Jackett.Common.Indexers.Abstract var qc = GetSearchQueryParameters(query); var episodeSearchUrl = SearchUrl + "?" + qc.GetQueryString(); + var response = await RequestWithCookiesAndRetryAsync(episodeSearchUrl, headers: GetSearchHeaders()); if (response.Status == HttpStatusCode.Unauthorized || response.Status == HttpStatusCode.PreconditionFailed) { diff --git a/src/Jackett.Common/Indexers/AvistaZ.cs b/src/Jackett.Common/Indexers/AvistaZ.cs index 0ba56d265..3a69884d9 100644 --- a/src/Jackett.Common/Indexers/AvistaZ.cs +++ b/src/Jackett.Common/Indexers/AvistaZ.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using Jackett.Common.Extensions; using Jackett.Common.Indexers.Abstract; using Jackett.Common.Models; using Jackett.Common.Services.Interfaces; @@ -23,13 +24,14 @@ namespace Jackett.Common.Indexers LimitsMax = 50, TvSearchParams = new List { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre }, MovieSearchParams = new List { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre }, - SupportsRawSearch = true + SupportsRawSearch = true, + TvSearchImdbAvailable = true }, configService: configService, client: wc, @@ -50,9 +52,9 @@ namespace Jackett.Common.Indexers } // Avistaz has episodes without season. eg Running Man E323 - protected override string GetSearchTerm(TorznabQuery query) => - !string.IsNullOrWhiteSpace(query.Episode) && query.Season == 0 ? - $"{query.SearchTerm} E{query.Episode}" : - $"{query.SearchTerm} {query.GetEpisodeSearchString()}"; + protected override string GetEpisodeSearchTerm(TorznabQuery query) => + query.Season == 0 && query.Episode.IsNotNullOrWhiteSpace() + ? $"E{query.Episode}" + : $"{query.GetEpisodeSearchString()}"; } } diff --git a/src/Jackett.Common/Indexers/PrivateHD.cs b/src/Jackett.Common/Indexers/PrivateHD.cs index 5159e2ec7..4814697f6 100644 --- a/src/Jackett.Common/Indexers/PrivateHD.cs +++ b/src/Jackett.Common/Indexers/PrivateHD.cs @@ -23,12 +23,13 @@ namespace Jackett.Common.Indexers LimitsMax = 50, TvSearchParams = new List { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre }, MovieSearchParams = new List { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - } + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre + }, + TvSearchImdbAvailable = true }, configService: configService, client: wc,