From c4bb1ba69ab35295cb99bdc02c0b0227e8ce31ad Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 6 Jun 2023 18:36:19 +0300 Subject: [PATCH] Catch JsonReaderException when parsing JSON in Cardigann --- .../Definitions/Cardigann/CardigannParser.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs index 2513898b6..cf8fc3b67 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs @@ -6,6 +6,7 @@ using System.Net; using AngleSharp.Dom; using AngleSharp.Html.Parser; using AngleSharp.Xml.Parser; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NLog; using NzbDrone.Common.Extensions; @@ -64,7 +65,7 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann var searchUrlUri = new Uri(request.Url.FullUri); - if (request.SearchPath.Response != null && request.SearchPath.Response.Type.Equals("json")) + if (request.SearchPath.Response is { Type: "json" }) { if (request.SearchPath.Response != null && request.SearchPath.Response.NoResultsMessage != null && @@ -73,7 +74,18 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann return releases; } - var parsedJson = JToken.Parse(results); + JToken parsedJson; + + try + { + parsedJson = JToken.Parse(results); + } + catch (JsonReaderException ex) + { + _logger.Error(ex, "Unable to parse JSON response from indexer"); + + throw new IndexerException(indexerResponse, "Error Parsing Json Response"); + } if (parsedJson == null) {