From 06391489cf044bfcd5fd97ab3106ab20409478bb Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 25 Jun 2023 10:29:38 +0300 Subject: [PATCH] Fixed: (Apps) Use `forceSave=true` to avoid validation warnings --- .../Applications/Lidarr/LidarrV1Proxy.cs | 18 ++++++++++++++---- .../Applications/Radarr/RadarrV3Proxy.cs | 18 ++++++++++++++---- .../Applications/Readarr/ReadarrV1Proxy.cs | 18 ++++++++++++++---- .../Applications/Sonarr/SonarrV3Proxy.cs | 18 ++++++++++++++---- .../Applications/Whisparr/WhisparrV3Proxy.cs | 18 ++++++++++++++---- 5 files changed, 70 insertions(+), 20 deletions(-) diff --git a/src/NzbDrone.Core/Applications/Lidarr/LidarrV1Proxy.cs b/src/NzbDrone.Core/Applications/Lidarr/LidarrV1Proxy.cs index 228fc1384..2674fcf59 100644 --- a/src/NzbDrone.Core/Applications/Lidarr/LidarrV1Proxy.cs +++ b/src/NzbDrone.Core/Applications/Lidarr/LidarrV1Proxy.cs @@ -85,13 +85,23 @@ namespace NzbDrone.Core.Applications.Lidarr request.SetContent(indexer.ToJson()); - return ExecuteIndexerRequest(request); + try + { + return ExecuteIndexerRequest(request); + } + catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest) + { + request.Url = request.Url.AddQueryParam("forceSave", "true"); + + return ExecuteIndexerRequest(request); + } } public LidarrIndexer UpdateIndexer(LidarrIndexer indexer, LidarrSettings settings) { var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put); + request.Url = request.Url.AddQueryParam("forceSave", "true"); request.SetContent(indexer.ToJson()); return ExecuteIndexerRequest(request); @@ -179,8 +189,10 @@ namespace NzbDrone.Core.Applications.Lidarr break; default: _logger.Error(ex, "Unexpected response status code: {0}", ex.Response.StatusCode); - throw; + break; } + + throw; } catch (JsonReaderException ex) { @@ -192,8 +204,6 @@ namespace NzbDrone.Core.Applications.Lidarr _logger.Error(ex, "Unable to add or update indexer"); throw; } - - return null; } private HttpRequest BuildRequest(LidarrSettings settings, string resource, HttpMethod method) diff --git a/src/NzbDrone.Core/Applications/Radarr/RadarrV3Proxy.cs b/src/NzbDrone.Core/Applications/Radarr/RadarrV3Proxy.cs index 19613ca81..2adb8f5c3 100644 --- a/src/NzbDrone.Core/Applications/Radarr/RadarrV3Proxy.cs +++ b/src/NzbDrone.Core/Applications/Radarr/RadarrV3Proxy.cs @@ -86,13 +86,23 @@ namespace NzbDrone.Core.Applications.Radarr request.SetContent(indexer.ToJson()); - return ExecuteIndexerRequest(request); + try + { + return ExecuteIndexerRequest(request); + } + catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest) + { + request.Url = request.Url.AddQueryParam("forceSave", "true"); + + return ExecuteIndexerRequest(request); + } } public RadarrIndexer UpdateIndexer(RadarrIndexer indexer, RadarrSettings settings) { var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put); + request.Url = request.Url.AddQueryParam("forceSave", "true"); request.SetContent(indexer.ToJson()); return ExecuteIndexerRequest(request); @@ -192,8 +202,10 @@ namespace NzbDrone.Core.Applications.Radarr break; default: _logger.Error(ex, "Unexpected response status code: {0}", ex.Response.StatusCode); - throw; + break; } + + throw; } catch (JsonReaderException ex) { @@ -205,8 +217,6 @@ namespace NzbDrone.Core.Applications.Radarr _logger.Error(ex, "Unable to add or update indexer"); throw; } - - return null; } private HttpRequest BuildRequest(RadarrSettings settings, string resource, HttpMethod method) diff --git a/src/NzbDrone.Core/Applications/Readarr/ReadarrV1Proxy.cs b/src/NzbDrone.Core/Applications/Readarr/ReadarrV1Proxy.cs index 3d74a517b..cfcd18264 100644 --- a/src/NzbDrone.Core/Applications/Readarr/ReadarrV1Proxy.cs +++ b/src/NzbDrone.Core/Applications/Readarr/ReadarrV1Proxy.cs @@ -82,13 +82,23 @@ namespace NzbDrone.Core.Applications.Readarr request.SetContent(indexer.ToJson()); - return ExecuteIndexerRequest(request); + try + { + return ExecuteIndexerRequest(request); + } + catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest) + { + request.Url = request.Url.AddQueryParam("forceSave", "true"); + + return ExecuteIndexerRequest(request); + } } public ReadarrIndexer UpdateIndexer(ReadarrIndexer indexer, ReadarrSettings settings) { var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put); + request.Url = request.Url.AddQueryParam("forceSave", "true"); request.SetContent(indexer.ToJson()); return ExecuteIndexerRequest(request); @@ -166,8 +176,10 @@ namespace NzbDrone.Core.Applications.Readarr break; default: _logger.Error(ex, "Unexpected response status code: {0}", ex.Response.StatusCode); - throw; + break; } + + throw; } catch (JsonReaderException ex) { @@ -179,8 +191,6 @@ namespace NzbDrone.Core.Applications.Readarr _logger.Error(ex, "Unable to add or update indexer"); throw; } - - return null; } private HttpRequest BuildRequest(ReadarrSettings settings, string resource, HttpMethod method) diff --git a/src/NzbDrone.Core/Applications/Sonarr/SonarrV3Proxy.cs b/src/NzbDrone.Core/Applications/Sonarr/SonarrV3Proxy.cs index 4b17352ad..63bc96a5f 100644 --- a/src/NzbDrone.Core/Applications/Sonarr/SonarrV3Proxy.cs +++ b/src/NzbDrone.Core/Applications/Sonarr/SonarrV3Proxy.cs @@ -85,13 +85,23 @@ namespace NzbDrone.Core.Applications.Sonarr request.SetContent(indexer.ToJson()); - return ExecuteIndexerRequest(request); + try + { + return ExecuteIndexerRequest(request); + } + catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest) + { + request.Url = request.Url.AddQueryParam("forceSave", "true"); + + return ExecuteIndexerRequest(request); + } } public SonarrIndexer UpdateIndexer(SonarrIndexer indexer, SonarrSettings settings) { var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put); + request.Url = request.Url.AddQueryParam("forceSave", "true"); request.SetContent(indexer.ToJson()); return ExecuteIndexerRequest(request); @@ -185,8 +195,10 @@ namespace NzbDrone.Core.Applications.Sonarr break; default: _logger.Error(ex, "Unexpected response status code: {0}", ex.Response.StatusCode); - throw; + break; } + + throw; } catch (JsonReaderException ex) { @@ -198,8 +210,6 @@ namespace NzbDrone.Core.Applications.Sonarr _logger.Error(ex, "Unable to add or update indexer"); throw; } - - return null; } private HttpRequest BuildRequest(SonarrSettings settings, string resource, HttpMethod method) diff --git a/src/NzbDrone.Core/Applications/Whisparr/WhisparrV3Proxy.cs b/src/NzbDrone.Core/Applications/Whisparr/WhisparrV3Proxy.cs index 4a80cbed5..62482081f 100644 --- a/src/NzbDrone.Core/Applications/Whisparr/WhisparrV3Proxy.cs +++ b/src/NzbDrone.Core/Applications/Whisparr/WhisparrV3Proxy.cs @@ -82,13 +82,23 @@ namespace NzbDrone.Core.Applications.Whisparr request.SetContent(indexer.ToJson()); - return Execute(request); + try + { + return ExecuteIndexerRequest(request); + } + catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest) + { + request.Url = request.Url.AddQueryParam("forceSave", "true"); + + return ExecuteIndexerRequest(request); + } } public WhisparrIndexer UpdateIndexer(WhisparrIndexer indexer, WhisparrSettings settings) { var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put); + request.Url = request.Url.AddQueryParam("forceSave", "true"); request.SetContent(indexer.ToJson()); return ExecuteIndexerRequest(request); @@ -166,8 +176,10 @@ namespace NzbDrone.Core.Applications.Whisparr break; default: _logger.Error(ex, "Unexpected response status code: {0}", ex.Response.StatusCode); - throw; + break; } + + throw; } catch (JsonReaderException ex) { @@ -179,8 +191,6 @@ namespace NzbDrone.Core.Applications.Whisparr _logger.Error(ex, "Unable to add or update indexer"); throw; } - - return null; } private HttpRequest BuildRequest(WhisparrSettings settings, string resource, HttpMethod method)