indexers: more nullable query.season checks

This commit is contained in:
Bogdan 2024-07-07 20:47:40 +03:00
parent defcf1039a
commit 8d0d882433
6 changed files with 16 additions and 10 deletions

View File

@ -455,12 +455,12 @@ namespace Jackett.Common.Indexers.Definitions
if (FilterSeasonEpisode)
{
if (query.Season != 0 && season != null && season != query.Season) // skip if season doesn't match
if (query.Season.HasValue && query.Season > 0 && season != null && season != query.Season) // skip if season doesn't match
{
continue;
}
if (query.Episode != null && episode != null && episode != int.Parse(query.Episode)) // skip if episode doesn't match
if (query.Episode.IsNotNullOrWhiteSpace() && episode != null && episode != int.Parse(query.Episode)) // skip if episode doesn't match
{
continue;
}

View File

@ -64,7 +64,7 @@ namespace Jackett.Common.Indexers.Definitions
// Avistaz has episodes without season. eg Running Man E323
protected override string GetEpisodeSearchTerm(TorznabQuery query) =>
query.Season == 0 && query.Episode.IsNotNullOrWhiteSpace()
(query.Season == null || query.Season == 0) && query.Episode.IsNotNullOrWhiteSpace()
? $"E{query.Episode}"
: $"{query.GetEpisodeSearchString()}";
}

View File

@ -123,12 +123,12 @@ namespace Jackett.Common.Indexers.Definitions
}
else
{
if (query.Season != 0)
if (query.Season.HasValue)
{
requestData["tvdb"]["season"] = query.Season;
}
if (!string.IsNullOrEmpty(query.Episode))
if (query.Episode.IsNotNullOrWhiteSpace())
{
requestData["tvdb"]["episode"] = query.Episode;
}

View File

@ -385,7 +385,7 @@ namespace Jackett.Common.Indexers.Definitions
foreach (var serie in series)
{
var link = serie["link"].ToString();
var season = query.Season == 0 ? "/seasons" : "/season_" + query.Season.ToString();
var season = query.Season.HasValue && query.Season > 0 ? $"/season_{query.Season}" : "/seasons";
var url = SiteLink + link.TrimStart('/') + season;
if (!string.IsNullOrEmpty(query.Episode)) // Fetch single episode releases

View File

@ -8,6 +8,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using AngleSharp.Html.Parser;
using Jackett.Common.Extensions;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig.Bespoke;
using Jackett.Common.Services.Interfaces;
@ -279,7 +280,8 @@ namespace Jackett.Common.Indexers.Definitions
if (!string.IsNullOrWhiteSpace(query.SearchTerm))
{
var searchString = query.SanitizedSearchTerm;
if (query.Season == 0 && string.IsNullOrWhiteSpace(query.Episode))
if (!query.Season.HasValue && query.Episode.IsNullOrWhiteSpace())
{
//Jackett doesn't check for lowercase s00e00 so do it here.
var searchMatch = _seriesInfoSearchRegex.Match(searchString);
@ -301,11 +303,14 @@ namespace Jackett.Common.Indexers.Definitions
queryParams.Add("c", Convert.ToBase64String(plainTextBytes));
}
if (query.Season != 0)
if (query.Season.HasValue && query.Season > 0)
{
queryParams.Add("s", query.Season.ToString());
if (!string.IsNullOrWhiteSpace(query.Episode))
if (query.Episode.IsNotNullOrWhiteSpace())
{
queryParams.Add("e", query.Episode);
}
}
var results = await RequestWithCookiesAndRetryAsync(SearchUrl + "?" + queryParams.GetQueryString());

View File

@ -271,7 +271,8 @@ namespace Jackett.Common.Indexers.Definitions
else // use the normal search
{
searchString = searchString.Replace("-", " ");
if (query.Season != 0)
if (query.Season.HasValue && query.Season > 0)
{
searchString += " Сезон " + query.Season;
}