mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
avistaz/privatehd: add support for searching by ImdbId/TmdbId/TvdbId (#14135)
This commit is contained in:
@@ -35,7 +35,9 @@ namespace Jackett.Common.Indexers.Abstract
|
|||||||
private new ConfigurationDataAvistazTracker configData => (ConfigurationDataAvistazTracker)base.configData;
|
private new ConfigurationDataAvistazTracker configData => (ConfigurationDataAvistazTracker)base.configData;
|
||||||
|
|
||||||
// hook to adjust the search term
|
// 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
|
// hook to adjust the search category
|
||||||
protected virtual List<KeyValuePair<string, string>> GetSearchQueryParameters(TorznabQuery query)
|
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?tmdb=1234
|
||||||
// https://privatehd.to/api/v1/jackett/torrents?tvdb=3653
|
// https://privatehd.to/api/v1/jackett/torrents?tvdb=3653
|
||||||
if (query.IsImdbQuery)
|
if (query.IsImdbQuery)
|
||||||
|
{
|
||||||
qc.Add("imdb", query.ImdbID);
|
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
|
else
|
||||||
qc.Add("search", GetSearchTerm(query).Trim());
|
qc.Add("search", GetSearchTerm(query).Trim());
|
||||||
|
|
||||||
@@ -176,6 +191,7 @@ namespace Jackett.Common.Indexers.Abstract
|
|||||||
|
|
||||||
var qc = GetSearchQueryParameters(query);
|
var qc = GetSearchQueryParameters(query);
|
||||||
var episodeSearchUrl = SearchUrl + "?" + qc.GetQueryString();
|
var episodeSearchUrl = SearchUrl + "?" + qc.GetQueryString();
|
||||||
|
|
||||||
var response = await RequestWithCookiesAndRetryAsync(episodeSearchUrl, headers: GetSearchHeaders());
|
var response = await RequestWithCookiesAndRetryAsync(episodeSearchUrl, headers: GetSearchHeaders());
|
||||||
if (response.Status == HttpStatusCode.Unauthorized || response.Status == HttpStatusCode.PreconditionFailed)
|
if (response.Status == HttpStatusCode.Unauthorized || response.Status == HttpStatusCode.PreconditionFailed)
|
||||||
{
|
{
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
using Jackett.Common.Extensions;
|
||||||
using Jackett.Common.Indexers.Abstract;
|
using Jackett.Common.Indexers.Abstract;
|
||||||
using Jackett.Common.Models;
|
using Jackett.Common.Models;
|
||||||
using Jackett.Common.Services.Interfaces;
|
using Jackett.Common.Services.Interfaces;
|
||||||
@@ -23,13 +24,14 @@ namespace Jackett.Common.Indexers
|
|||||||
LimitsMax = 50,
|
LimitsMax = 50,
|
||||||
TvSearchParams = new List<TvSearchParam>
|
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>
|
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,
|
configService: configService,
|
||||||
client: wc,
|
client: wc,
|
||||||
@@ -50,9 +52,9 @@ namespace Jackett.Common.Indexers
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Avistaz has episodes without season. eg Running Man E323
|
// Avistaz has episodes without season. eg Running Man E323
|
||||||
protected override string GetSearchTerm(TorznabQuery query) =>
|
protected override string GetEpisodeSearchTerm(TorznabQuery query) =>
|
||||||
!string.IsNullOrWhiteSpace(query.Episode) && query.Season == 0 ?
|
query.Season == 0 && query.Episode.IsNotNullOrWhiteSpace()
|
||||||
$"{query.SearchTerm} E{query.Episode}" :
|
? $"E{query.Episode}"
|
||||||
$"{query.SearchTerm} {query.GetEpisodeSearchString()}";
|
: $"{query.GetEpisodeSearchString()}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,12 +23,13 @@ namespace Jackett.Common.Indexers
|
|||||||
LimitsMax = 50,
|
LimitsMax = 50,
|
||||||
TvSearchParams = new List<TvSearchParam>
|
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>
|
MovieSearchParams = new List<MovieSearchParam>
|
||||||
{
|
{
|
||||||
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre
|
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre
|
||||||
}
|
},
|
||||||
|
TvSearchImdbAvailable = true
|
||||||
},
|
},
|
||||||
configService: configService,
|
configService: configService,
|
||||||
client: wc,
|
client: wc,
|
||||||
|
Reference in New Issue
Block a user