|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
|
using Recyclarr.Cli.Console.Settings;
|
|
|
|
|
using Recyclarr.Cli.Pipelines.CustomFormat.Api;
|
|
|
|
|
using Recyclarr.TrashLib.Compatibility.Sonarr;
|
|
|
|
|
using Recyclarr.TrashLib.Config;
|
|
|
|
|
using Recyclarr.TrashLib.Config.Services;
|
|
|
|
|
using Recyclarr.TrashLib.ExceptionTypes;
|
|
|
|
@ -15,22 +16,28 @@ public class DeleteCustomFormatsProcessor : IDeleteCustomFormatsProcessor
|
|
|
|
|
private readonly IAnsiConsole _console;
|
|
|
|
|
private readonly ICustomFormatService _api;
|
|
|
|
|
private readonly IConfigurationRegistry _configRegistry;
|
|
|
|
|
private readonly ISonarrCapabilityFetcher _sonarCapabilities;
|
|
|
|
|
|
|
|
|
|
public DeleteCustomFormatsProcessor(
|
|
|
|
|
ILogger log,
|
|
|
|
|
IAnsiConsole console,
|
|
|
|
|
ICustomFormatService api,
|
|
|
|
|
IConfigurationRegistry configRegistry)
|
|
|
|
|
IConfigurationRegistry configRegistry,
|
|
|
|
|
ISonarrCapabilityFetcher sonarCapabilities)
|
|
|
|
|
{
|
|
|
|
|
_log = log;
|
|
|
|
|
_console = console;
|
|
|
|
|
_api = api;
|
|
|
|
|
_configRegistry = configRegistry;
|
|
|
|
|
_sonarCapabilities = sonarCapabilities;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task Process(IDeleteCustomFormatSettings settings)
|
|
|
|
|
{
|
|
|
|
|
var config = GetTargetConfig(settings);
|
|
|
|
|
|
|
|
|
|
await CheckCustomFormatSupport(config);
|
|
|
|
|
|
|
|
|
|
var cfs = await ObtainCustomFormats(config);
|
|
|
|
|
|
|
|
|
|
if (!settings.All)
|
|
|
|
@ -67,6 +74,18 @@ public class DeleteCustomFormatsProcessor : IDeleteCustomFormatsProcessor
|
|
|
|
|
await DeleteCustomFormats(cfs, config);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task CheckCustomFormatSupport(IServiceConfiguration config)
|
|
|
|
|
{
|
|
|
|
|
if (config is SonarrConfiguration)
|
|
|
|
|
{
|
|
|
|
|
var capabilities = await _sonarCapabilities.GetCapabilities(config);
|
|
|
|
|
if (!capabilities.SupportsCustomFormats)
|
|
|
|
|
{
|
|
|
|
|
throw new ServiceIncompatibilityException("Custom formats are not supported in Sonarr v3");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[SuppressMessage("Design", "CA1031:Do not catch general exception types")]
|
|
|
|
|
private async Task DeleteCustomFormats(ICollection<CustomFormatData> cfs, IServiceConfiguration config)
|
|
|
|
|
{
|
|
|
|
|