diff --git a/src/NzbDrone.Core/Indexers/IndexerBase.cs b/src/NzbDrone.Core/Indexers/IndexerBase.cs index 5a3b36bbe..2f545e0cd 100644 --- a/src/NzbDrone.Core/Indexers/IndexerBase.cs +++ b/src/NzbDrone.Core/Indexers/IndexerBase.cs @@ -208,6 +208,12 @@ public ValidationResult Test() try { + // Ensure Redirect is true for Usenet protocols + if (Protocol == DownloadProtocol.Usenet || (SupportsRedirect && Redirect)) + { + failures.Add(new ValidationFailure("Redirect", "Redirect must be enabled for Usenet indexers")); + } + Test(failures).GetAwaiter().GetResult(); } catch (Exception ex) diff --git a/src/Prowlarr.Api.V1/Indexers/NewznabController.cs b/src/Prowlarr.Api.V1/Indexers/NewznabController.cs index 6feaa115d..cde49b789 100644 --- a/src/Prowlarr.Api.V1/Indexers/NewznabController.cs +++ b/src/Prowlarr.Api.V1/Indexers/NewznabController.cs @@ -262,8 +262,8 @@ public async Task GetDownload(int id, string link, string file) throw new BadRequestException("Failed to normalize provided link"); } - // If Indexer is set to download via Redirect then just redirect to the link - if (indexer.SupportsRedirect && indexerDef.Redirect) + // If Indexer is set to download via Redirect then just redirect to the link unless it's a Usenet indexer at which point it forces Redirect. + if (indexer.Protocol == DownloadProtocol.Usenet || (indexer.SupportsRedirect && indexerDef.Redirect)) { _downloadService.RecordRedirect(unprotectedLink, id, source, host, file); return RedirectPermanent(unprotectedLink);