avistaz/privatehd: add support for searching by ImdbId/TmdbId/TvdbId (#14135)

This commit is contained in:
Bogdan
2023-03-07 03:48:56 +02:00
committed by GitHub
parent ec55d71c6c
commit 7a183ebb83
3 changed files with 30 additions and 11 deletions

View File

@@ -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<KeyValuePair<string, string>> 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)
{

View File

@@ -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>
{
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>
{
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()}";
}
}

View File

@@ -23,12 +23,13 @@ namespace Jackett.Common.Indexers
LimitsMax = 50,
TvSearchParams = new List<TvSearchParam>
{
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>
{
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre
}
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre
},
TvSearchImdbAvailable = true
},
configService: configService,
client: wc,