From c687bdb1fb47787de621c37221d5d95d4ca2fda1 Mon Sep 17 00:00:00 2001 From: Daniel Jacobs Date: Sat, 11 Apr 2026 10:18:29 +0100 Subject: [PATCH] Fixed: Don't send limit=0 to Newznab indexers (#2654) * Fixed: Don't send limit=0 to Newznab indexers When searching via the internal API, SearchResource.Limit defaults to 0 because it's a non-nullable int. This gets passed through to the Newznab request generator, which emits &limit=0 in the query URL. Indexers that follow the Newznab spec honor limit=0 literally and return zero results. Confirmed affected: DrunkenSlug and NZBGeek. Changed Limit and Offset on SearchResource to int? so they default to null when omitted, matching the existing behavior in NewznabRequest. Also guard against emitting limit=0 in the request generators. Co-authored-by: Daniel Jacobs Co-authored-by: Bogdan --- .../Definitions/Headphones/HeadphonesRequestGenerator.cs | 2 +- .../Indexers/Definitions/Newznab/NewznabRequestGenerator.cs | 2 +- src/Prowlarr.Api.V1/Search/SearchResource.cs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Headphones/HeadphonesRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/Headphones/HeadphonesRequestGenerator.cs index c2169d9cb..e198c6c6d 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Headphones/HeadphonesRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Headphones/HeadphonesRequestGenerator.cs @@ -120,7 +120,7 @@ private IEnumerable GetPagedRequests(SearchCriteriaBase searchCr baseUrl += "&apikey=" + Settings.ApiKey; } - if (searchCriteria.Limit.HasValue) + if (searchCriteria.Limit is > 0) { parameters.Add("limit", searchCriteria.Limit.ToString()); } diff --git a/src/NzbDrone.Core/Indexers/Definitions/Newznab/NewznabRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/Newznab/NewznabRequestGenerator.cs index ad3f48b07..4ec626d3b 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Newznab/NewznabRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Newznab/NewznabRequestGenerator.cs @@ -263,7 +263,7 @@ private IEnumerable GetPagedRequests(SearchCriteriaBase searchCr searchUrl += "&apikey=" + Settings.ApiKey; } - if (searchCriteria.Limit.HasValue) + if (searchCriteria.Limit is > 0) { parameters.Set("limit", searchCriteria.Limit.ToString()); } diff --git a/src/Prowlarr.Api.V1/Search/SearchResource.cs b/src/Prowlarr.Api.V1/Search/SearchResource.cs index 67f7659d1..2c6531ade 100644 --- a/src/Prowlarr.Api.V1/Search/SearchResource.cs +++ b/src/Prowlarr.Api.V1/Search/SearchResource.cs @@ -14,7 +14,7 @@ public SearchResource() public string Type { get; set; } public List IndexerIds { get; set; } public List Categories { get; set; } - public int Limit { get; set; } - public int Offset { get; set; } + public int? Limit { get; set; } + public int? Offset { get; set; } } }