Fixed: (Apps) Avoid force saving remote indexers when it's not necessary

This commit is contained in:
Bogdan 2023-07-31 10:33:57 +03:00
parent f5e96f3f51
commit cc66cee71c
5 changed files with 60 additions and 10 deletions

View file

@ -103,10 +103,20 @@ namespace NzbDrone.Core.Applications.Lidarr
{
var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put);
request.Url = request.Url.AddQueryParam("forceSave", "true");
request.SetContent(indexer.ToJson());
return ExecuteIndexerRequest(request);
try
{
return ExecuteIndexerRequest(request);
}
catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest)
{
_logger.Debug("Retrying to update indexer forcefully");
request.Url = request.Url.AddQueryParam("forceSave", "true");
return ExecuteIndexerRequest(request);
}
}
public ValidationFailure TestConnection(LidarrIndexer indexer, LidarrSettings settings)

View file

@ -104,10 +104,20 @@ namespace NzbDrone.Core.Applications.Radarr
{
var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put);
request.Url = request.Url.AddQueryParam("forceSave", "true");
request.SetContent(indexer.ToJson());
return ExecuteIndexerRequest(request);
try
{
return ExecuteIndexerRequest(request);
}
catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest)
{
_logger.Debug("Retrying to update indexer forcefully");
request.Url = request.Url.AddQueryParam("forceSave", "true");
return ExecuteIndexerRequest(request);
}
}
public ValidationFailure TestConnection(RadarrIndexer indexer, RadarrSettings settings)

View file

@ -100,10 +100,20 @@ namespace NzbDrone.Core.Applications.Readarr
{
var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put);
request.Url = request.Url.AddQueryParam("forceSave", "true");
request.SetContent(indexer.ToJson());
return ExecuteIndexerRequest(request);
try
{
return ExecuteIndexerRequest(request);
}
catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest)
{
_logger.Debug("Retrying to update indexer forcefully");
request.Url = request.Url.AddQueryParam("forceSave", "true");
return ExecuteIndexerRequest(request);
}
}
public ValidationFailure TestConnection(ReadarrIndexer indexer, ReadarrSettings settings)

View file

@ -103,10 +103,20 @@ namespace NzbDrone.Core.Applications.Sonarr
{
var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put);
request.Url = request.Url.AddQueryParam("forceSave", "true");
request.SetContent(indexer.ToJson());
return ExecuteIndexerRequest(request);
try
{
return ExecuteIndexerRequest(request);
}
catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest)
{
_logger.Debug("Retrying to update indexer forcefully");
request.Url = request.Url.AddQueryParam("forceSave", "true");
return ExecuteIndexerRequest(request);
}
}
public ValidationFailure TestConnection(SonarrIndexer indexer, SonarrSettings settings)

View file

@ -98,10 +98,20 @@ namespace NzbDrone.Core.Applications.Whisparr
{
var request = BuildRequest(settings, $"{AppIndexerApiRoute}/{indexer.Id}", HttpMethod.Put);
request.Url = request.Url.AddQueryParam("forceSave", "true");
request.SetContent(indexer.ToJson());
return ExecuteIndexerRequest(request);
try
{
return ExecuteIndexerRequest(request);
}
catch (HttpException ex) when (ex.Response.StatusCode == HttpStatusCode.BadRequest)
{
_logger.Debug("Retrying to update indexer forcefully");
request.Url = request.Url.AddQueryParam("forceSave", "true");
return ExecuteIndexerRequest(request);
}
}
public ValidationFailure TestConnection(WhisparrIndexer indexer, WhisparrSettings settings)