broadcasthenet: improve btn's search (#9680)

This commit is contained in:
seeyabye
2020-10-01 02:34:37 +09:00
committed by GitHub
parent 016c848167
commit 23e7c9d76a

View File

@@ -89,27 +89,35 @@ namespace Jackett.Common.Indexers
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query) protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{ {
var searchString = query.GetQueryString(); var searchString = query.SearchTerm;
var btnResults = query.Limit; var btnResults = query.Limit;
if (btnResults == 0) if (btnResults == 0)
btnResults = (int)TorznabCaps.LimitsDefault; btnResults = (int)TorznabCaps.LimitsDefault;
var btnOffset = query.Offset; var btnOffset = query.Offset;
var releases = new List<ReleaseInfo>(); var releases = new List<ReleaseInfo>();
var searchParam = new Dictionary<string, string>();
// If only the season is searched for then change format to match expected format // If only the season/episode is searched for then change format to match expected format
var seasonOnlyMatch = new Regex(@".*\s[Ss]{1}\d{2}(?<![Ee]{1}\d{2,3})?$").Match(searchString); if (query.Season > 0 && query.Episode == null)
if (seasonOnlyMatch.Success)
{ {
searchString = Regex.Replace(searchString, @"[Ss]{1}\d{2}", $"Season {query.Season}"); searchParam["name"] = $"Season {query.Season}";
searchParam["category"] = "Season";
} else if (query.Season > 0 && int.Parse(query.Episode) > 0)
{
searchParam["name"] = string.Format("S{0:00}E{1:00}", query.Season, int.Parse(query.Episode));
searchParam["category"] = "Episode";
} }
searchParam["search"] = searchString.Replace(" ", "%");
var parameters = new JArray var parameters = new JArray
{ {
new JValue(configData.Key.Value), new JValue(configData.Key.Value),
new JValue(searchString.Trim()), JObject.FromObject(searchParam),
new JValue(btnResults), new JValue(btnResults),
new JValue(btnOffset) new JValue(btnOffset)
}; };
var response = await RequestWithCookiesAndRetryAsync( var response = await RequestWithCookiesAndRetryAsync(
APIBASE, method: RequestType.POST, APIBASE, method: RequestType.POST,
headers: new Dictionary<string, string> headers: new Dictionary<string, string>