From 76f93c8415419f0c3dab90582d47a1c9a653263c Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 7 May 2023 20:29:51 +0300 Subject: [PATCH] Fixed: Ensure indexer errors are handled before processing response --- src/NzbDrone.Core/Indexers/EzrssTorrentRssParser.cs | 6 +++--- src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs | 9 ++++++--- src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs | 7 ++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/EzrssTorrentRssParser.cs b/src/NzbDrone.Core/Indexers/EzrssTorrentRssParser.cs index 2b152ff2f..b174b8573 100644 --- a/src/NzbDrone.Core/Indexers/EzrssTorrentRssParser.cs +++ b/src/NzbDrone.Core/Indexers/EzrssTorrentRssParser.cs @@ -1,6 +1,4 @@ using System.Linq; -using System.Xml.Linq; -using NzbDrone.Common.Extensions; using NzbDrone.Core.Indexers.Exceptions; namespace NzbDrone.Core.Indexers @@ -20,6 +18,8 @@ namespace NzbDrone.Core.Indexers protected override bool PreProcess(IndexerResponse indexerResponse) { + base.PreProcess(indexerResponse); + var document = LoadXmlDocument(indexerResponse); var items = GetItems(document).ToList(); @@ -28,7 +28,7 @@ namespace NzbDrone.Core.Indexers throw new IndexerException(indexerResponse, "No results were found"); } - return base.PreProcess(indexerResponse); + return true; } } } diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs index 50a0a4fd2..8b4087f51 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs @@ -1,10 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; -using MonoTorrent; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Indexers.Exceptions; using NzbDrone.Core.Parser.Model; @@ -52,6 +50,11 @@ namespace NzbDrone.Core.Indexers.Newznab protected override bool PreProcess(IndexerResponse indexerResponse) { + if (indexerResponse.HttpResponse.HasHttpError) + { + base.PreProcess(indexerResponse); + } + var xdoc = LoadXmlDocument(indexerResponse); CheckError(xdoc, indexerResponse); diff --git a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs index 31322cf1f..1c660adf7 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; @@ -19,6 +19,11 @@ namespace NzbDrone.Core.Indexers.Torznab protected override bool PreProcess(IndexerResponse indexerResponse) { + if (indexerResponse.HttpResponse.HasHttpError) + { + base.PreProcess(indexerResponse); + } + var xdoc = LoadXmlDocument(indexerResponse); var error = xdoc.Descendants("error").FirstOrDefault();