From cffb8d783a0f17767d36940979fba045f87601e4 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Mon, 23 Jan 2023 07:52:09 -0600 Subject: [PATCH] refactor: Convert processors/updaters to pipelines --- .editorconfig | 9 +- schemas/config-schema.json | 13 +- .../.idea.Recyclarr/.idea/indexLayout.xml | 4 +- .../list release-profiles --terms.run.xml | 2 +- .../radarr___list_custom_formats.xml | 20 - .../radarr___list_qualities.xml | 20 - .../runConfigurations/radarr___preview.xml | 20 - .../.idea/runConfigurations/sonarr.xml | 20 - .../sonarr___list_custom_formats.xml | 20 - .../sonarr___list_qualities.xml | 20 - .../sonarr___list_release_profiles.xml | 20 - .../runConfigurations/sonarr___preview.xml | 20 - .../sonarr__custom_config_dir_.xml | 23 - .../{radarr.xml => sync___preview.xml} | 4 +- src/Directory.Build.props | 9 + src/Directory.Packages.props | 2 + .../IntegrationFixture.cs | 8 +- .../AutoMapperConfigurationTest.cs | 1 - .../BaseCommandSetupIntegrationTest.cs | 3 - .../CompositionRootTest.cs | 2 - .../Console/Helpers/CacheStoragePathTest.cs | 3 - src/Recyclarr.Cli.Tests/LogJanitorTest.cs | 4 - .../Migration/MigrationExecutorTest.cs | 3 - .../MigrateTrashUpdaterAppDataDirTest.cs | 4 - .../Migration/Steps/MigrateTrashYmlTest.cs | 4 - .../ServiceCompatibilityIntegrationTest.cs | 3 - src/Recyclarr.Cli/CompositionRoot.cs | 50 ++- .../Console/Commands/ConfigCreateCommand.cs | 2 +- .../Commands/ListCustomFormatsCommand.cs | 2 +- .../Console/Commands/ListQualitiesCommand.cs | 2 +- .../Commands/ListReleaseProfilesCommand.cs | 2 +- .../Console/Commands/RadarrCommand.cs | 6 +- .../Console/Commands/SonarrCommand.cs | 8 +- .../Console/Commands/SyncCommand.cs | 2 +- .../CommonMockFileSystemExtensions.cs | 38 +- .../Extensions/DictionaryExtensionsTest.cs | 2 - .../Extensions/FileSystemExtensionsTest.cs | 10 +- .../Extensions/StringExtensionsTest.cs | 2 - src/Recyclarr.Common.Tests/JsonUtilsTest.cs | 5 - .../ResourceDataReaderTest.cs | 3 - .../Autofac/LifetimeScopedValue.cs | 21 - .../Extensions/CollectionExtensions.cs | 16 +- .../Extensions/FileSystemExtensions.cs | 5 +- .../Extensions/JsonNetExtensions.cs | 7 + .../Extensions/StringExtensions.cs | 5 + .../FluentValidationExtensions.cs | 11 +- .../NullableChildValidatorAdaptor.cs | 4 +- .../GenericEqualityComparer.cs | 43 ++ .../YamlDotNet/ForceEmptySequences.cs | 7 +- .../YamlDotNet/ValidatingDeserializer.cs | 7 +- src/Recyclarr.Gui/Pages/Error.cshtml | 2 + .../StreamBuilderTest.cs | 3 - .../StringUtilsTest.cs | 3 - .../AutoFixture/AutoMockDataAttribute.cs | 1 - .../InlineAutoMockDataAttribute.cs | 1 - .../MockFileSystemSpecimenBuilder.cs | 1 - .../AutofacTestExtensions.cs | 1 - src/Recyclarr.TestLibrary/FileUtils.cs | 1 - .../FluentAssertions/JsonEquivalencyStep.cs | 4 +- src/Recyclarr.TestLibrary/MockData.cs | 1 - .../MockFileSystemExtensions.cs | 1 - .../CfTestUtils.cs | 16 - .../MockSyncSettings.cs | 30 ++ src/Recyclarr.TrashLib.TestLibrary/NewCf.cs | 48 +- src/Recyclarr.TrashLib.TestLibrary/NewQp.cs | 25 ++ .../Cache/ServiceCacheTest.cs | 10 +- ...ironmentVariableNotDefinedExceptionTest.cs | 2 - .../Config/Parsing/ConfigRegistryTest.cs | 57 ++- .../Parsing/ConfigValidationExecutorTest.cs | 2 - .../Config/Parsing/ConfigurationFinderTest.cs | 5 - .../Parsing/ConfigurationLoaderEnvVarTest.cs | 17 +- .../Parsing/ConfigurationLoaderSecretsTest.cs | 9 +- .../Config/Parsing/ConfigurationLoaderTest.cs | 17 +- .../Secrets/SecretNotFoundExceptionTest.cs | 2 - .../ServiceConfigurationValidatorTest.cs | 1 - .../Config/Settings/SettingsPersisterTest.cs | 5 - .../CustomFormat/CachePersisterTest.cs | 93 ++-- .../Guide/CustomFormatCategoryParserTest.cs | 7 +- .../Guide/CustomFormatLoaderTest.cs | 34 +- .../CustomFormat/GuideDataListerTest.cs | 7 +- .../Data/ImportableCustomFormat1.json | 15 - .../ImportableCustomFormat1_Processed.json | 13 - .../Data/ImportableCustomFormat2.json | 15 - .../ImportableCustomFormat2_Processed.json | 13 - .../CustomFormat/Processors/Data/NoScore.json | 4 - .../Processors/Data/WontBeInConfig.json | 5 - .../Processors/GuideProcessorTest.cs | 167 ------- .../Processors/GuideSteps/ConfigStepTest.cs | 110 ----- .../GuideSteps/CustomFormatStepTest.cs | 155 ------- .../GuideSteps/QualityProfileStepTest.cs | 130 ------ .../Processors/PersistenceProcessorTest.cs | 53 --- .../CustomFormatApiPersistenceStepTest.cs | 43 -- .../JsonTransactionStepTest.cs | 359 --------------- .../QualityProfileApiPersistenceStepTest.cs | 257 ----------- .../GlobalTestSetup.cs | 2 - src/Recyclarr.TrashLib.Tests/GlobalUsings.cs | 3 + .../Guide/CustomFormatParserTest.cs | 116 +++++ .../Models/CustomFormatDataComparerTest.cs | 371 ++++++++++++++++ .../CustomFormatConfigPhaseTest.cs | 77 ++++ .../CustomFormatTransactionPhaseTest.cs | 413 ++++++++++++++++++ .../QualityProfileConfigPhaseTest.cs | 294 +++++++++++++ .../QualityProfileTransactionPhaseTest.cs | 245 +++++++++++ .../Guide/Data/invalid_quality_size.json | 3 + .../QualitySize/Guide/Data/quality_size.json | 18 + .../Guide/QualityGuideServiceTest.cs | 32 ++ .../Guide/QualitySizeGuideParserTest.cs | 53 +++ .../QualitySizeGuidePhaseTest.cs | 140 ++++++ .../QualitySizeTransactionPhaseTest.cs | 108 +++++ .../PipelinePhases/TagApiFetchPhaseTest.cs | 35 ++ .../TagApiPersistencePhaseTest.cs | 40 ++ .../Tags/PipelinePhases/TagConfigPhaseTest.cs | 39 ++ .../PipelinePhases/TagTransactionPhaseTest.cs | 50 +++ .../QualityDefinition/QualitySizeDataTest.cs | 12 +- .../Repo/VersionControl/GitPathTest.cs | 5 - .../Services/GuideServiceTest.cs | 10 +- .../Processors/ConfigCreationProcessorTest.cs | 4 +- .../Services/ReleaseProfileDataListerTest.cs | 9 +- .../SonarrQualityDataTest.cs | 12 +- .../Filters/ReleaseProfileDataFiltererTest.cs | 9 +- ...eleaseProfileDataValidationFiltererTest.cs | 7 +- .../Filters/StrictNegativeScoresFilterTest.cs | 9 +- .../ReleaseProfileDataValidatorTest.cs | 4 +- .../Sonarr/ReleaseProfile/ScopedStateTest.cs | 4 +- .../Sonarr/SonarrCapabilityEnforcerTest.cs | 9 +- .../Sonarr/SonarrCompatibilityTest.cs | 9 +- .../SonarrConfigurationValidatorTest.cs | 3 +- .../Startup/DefaultAppDataSetupTest.cs | 6 - .../ApiServicesAutofacModule.cs} | 5 +- .../System/Dto/SystemStatus.cs | 2 +- .../System/IServiceInformation.cs | 2 +- .../System/ISystemApiService.cs | 4 +- .../System/ServiceInformation.cs | 2 +- .../System/SystemApiService.cs | 4 +- .../CompatibilityAutofacModule.cs | 21 + .../Radarr/RadarrCapabilities.cs | 2 +- .../Radarr/RadarrCapabilityChecker.cs | 5 +- .../ServiceCapabilityChecker.cs | 4 +- .../Sonarr}/ISonarrCapabilityChecker.cs | 2 +- .../Sonarr}/SonarrCapabilities.cs | 2 +- .../Sonarr}/SonarrCapabilityChecker.cs | 5 +- .../Sonarr}/SonarrCapabilityEnforcer.cs | 4 +- .../Config/ConfigAutofacModule.cs | 3 - .../EnvironmentVariablesDeserializer.cs | 5 +- .../Config/Parsing/ConfigParser.cs | 4 +- .../Config/Parsing/ConfigRegistry.cs | 17 +- .../Config/Parsing/ConfigurationException.cs | 4 +- .../Config/Parsing/ConfigurationLoader.cs | 26 +- .../Config/Parsing/IConfigRegistry.cs | 4 +- .../Config/Secrets/SecretsDeserializer.cs | 5 +- .../Config/Services/IServiceConfiguration.cs | 7 +- .../Services/Radarr}/RadarrConfiguration.cs | 5 +- .../Radarr}/RadarrConfigurationValidator.cs | 2 +- .../Config/Services/ServiceConfiguration.cs | 27 +- .../Services/ServiceConfigurationValidator.cs | 4 +- .../Services/Sonarr}/SonarrConfiguration.cs | 4 +- .../Sonarr}/SonarrConfigurationValidator.cs | 2 +- .../Http/FlurlClientFactory.cs | 9 +- .../Json/ServiceContractResolver.cs | 51 +++ .../Json/ServiceJsonSerializerFactory.cs | 23 + .../CustomFormat/Api/CustomFormatService.cs | 41 ++ .../CustomFormat/Api/ICustomFormatService.cs | 12 + .../CustomFormat/Cache/CacheException.cs | 9 + .../CustomFormat/Cache/CachePersister.cs | 46 ++ .../CustomFormat/Cache/ICachePersister.cs | 10 + .../Cache/ProcessedCustomFormatCache.cs | 24 + .../CustomFormat/CustomFormatAutofacModule.cs | 31 ++ .../CustomFormat/CustomFormatSyncPipeline.cs | 74 ++++ .../Guide/CustomFormatCategoryItem.cs | 2 +- .../Guide/CustomFormatCategoryParser.cs | 2 +- .../Guide/CustomFormatDataLister.cs | 2 +- .../Guide/CustomFormatGuideService.cs | 12 +- .../CustomFormat/Guide/CustomFormatLoader.cs | 7 +- .../CustomFormat/Guide/CustomFormatParser.cs | 18 + .../CustomFormat/Guide/CustomFormatPaths.cs | 2 +- .../Guide/ICustomFormatCategoryParser.cs | 2 +- .../Guide/ICustomFormatGuideService.cs | 4 +- .../CustomFormat/Guide/ICustomFormatLoader.cs | 11 + .../CustomFormat/Guide/ICustomFormatParser.cs | 4 +- .../Models/ConflictingCustomFormat.cs | 6 + .../CustomFormat/Models/CustomFormatCache.cs | 40 ++ .../CustomFormat/Models/CustomFormatData.cs | 52 +++ .../Models/CustomFormatDataComparer.cs | 57 +++ .../Models/FieldsArrayJsonConverter.cs | 52 +++ .../Models/ProcessedConfigData.cs | 6 +- .../CustomFormatApiFetchPhase.cs | 21 + .../CustomFormatApiPersistencePhase.cs | 39 ++ .../PipelinePhases/CustomFormatConfigPhase.cs | 50 +++ .../CustomFormatPreviewPhase.cs | 85 ++++ .../CustomFormatTransactionPhase.cs | 116 +++++ .../Pipelines/IPipelineCache.cs | 9 + .../Pipelines/ISyncPipeline.cs | 9 + .../Api/IQualityProfileService.cs | 9 + .../QualityProfile/Api/QualityProfileDto.cs | 32 ++ .../Api/QualityProfileService.cs | 15 +- .../QualityProfileApiFetchPhase.cs | 19 + .../QualityProfileApiPersistencePhase.cs | 62 +++ .../QualityProfileConfigPhase.cs | 137 ++++++ .../QualityProfilePreviewPhase.cs | 57 +++ .../QualityProfileTransactionPhase.cs | 99 +++++ .../QualityProfileAutofacModule.cs | 23 + .../QualityProfileSyncPipeline.cs | 47 ++ .../QualityProfile}/UpdatedFormatScore.cs | 5 +- .../Api/IQualityDefinitionService.cs | 4 +- .../Api/QualityDefinitionService.cs | 4 +- .../Api/ServiceQualityDefinitionItem.cs | 2 +- .../QualitySize/Guide/IQualityGuideService.cs | 2 +- .../QualitySize/Guide/QualityGuideService.cs | 10 +- .../QualitySize/Guide/QualityItem.cs | 2 +- .../Guide/QualitySizeDataLister.cs | 2 +- .../Guide/QualitySizeGuideParser.cs | 22 +- .../QualitySize/Guide/QualitySizePaths.cs | 2 +- .../QualitySizeApiFetchPhase.cs | 19 + .../QualitySizeApiPersistencePhase.cs | 22 + .../PipelinePhases/QualitySizeGuidePhase.cs | 68 +++ .../PipelinePhases/QualitySizePreviewPhase.cs | 33 ++ .../QualitySizeTransactionPhase.cs | 54 +++ .../QualitySize/QualitySizeAutofacModule.cs | 26 ++ .../Pipelines/QualitySize/QualitySizeData.cs | 7 + .../QualitySize/QualitySizeItem.cs | 4 +- .../QualitySize/QualitySizeSyncPipeline.cs | 46 ++ .../Api/IReleaseProfileApiService.cs | 4 +- ...onarrReleaseProfileCompatibilityHandler.cs | 7 +- .../Mappings/SonarrApiObjectMappingProfile.cs | 4 +- .../Api/Objects/SonarrReleaseProfile.cs | 2 +- .../Api/ReleaseProfileApiService.cs | 6 +- .../Api/Schemas/SonarrReleaseProfileSchema.cs | 2 +- ...onarrReleaseProfileCompatibilityHandler.cs | 8 +- .../Filters/IReleaseProfileFilter.cs | 4 +- .../Filters/IReleaseProfileFilterPipeline.cs | 4 +- .../Filters/IncludeExcludeFilter.cs | 4 +- .../Filters/ReleaseProfileDataFilterer.cs | 19 +- .../ReleaseProfileDataValidationFilterer.cs | 2 +- .../Filters/ReleaseProfileFilterPipeline.cs | 4 +- .../Filters/StrictNegativeScoresFilter.cs | 4 +- .../Guide/IReleaseProfileGuideService.cs | 2 +- .../Guide/ReleaseProfileDataLister.cs | 2 +- .../Guide/ReleaseProfileGuideParser.cs | 5 +- .../Guide/ReleaseProfileGuideService.cs | 23 + .../Models/ReleaseProfileTransactionData.cs | 9 + .../ReleaseProfileApiFetchPhase.cs | 21 + .../ReleaseProfileApiPersistencePhase.cs | 38 ++ .../ReleaseProfileConfigPhase.cs | 60 +++ .../ReleaseProfilePreviewPhase.cs | 91 ++++ .../ReleaseProfileTransactionPhase.cs | 74 ++++ .../ReleaseProfileAutofacModule.cs | 26 +- .../ReleaseProfile/ReleaseProfileData.cs | 2 +- .../ReleaseProfileDataValidator.cs | 2 +- .../ReleaseProfileSyncPipeline.cs | 55 +++ .../ReleaseProfile/ScopedState.cs | 2 +- .../ReleaseProfile/TermDataConverter.cs | 7 +- .../Tags}/Api/ISonarrTagApiService.cs | 3 +- .../Pipelines/Tags/Api/SonarrTag.cs | 13 + .../Tags}/Api/SonarrTagApiService.cs | 3 +- .../Tags/PipelinePhases/TagApiFetchPhase.cs | 24 + .../PipelinePhases/TagApiPersistencePhase.cs | 33 ++ .../Tags/PipelinePhases/TagConfigPhase.cs | 18 + .../Tags/PipelinePhases/TagPreviewPhase.cs | 35 ++ .../PipelinePhases/TagTransactionPhase.cs | 19 + .../Pipelines/Tags/ServiceTagCache.cs | 27 ++ .../Pipelines/Tags/TagSyncPipeline.cs | 56 +++ .../Pipelines/Tags/TagsAutofacModule.cs | 27 ++ .../Processors/ConfigCreationProcessor.cs | 2 +- .../{Services => }/Processors/ExitStatus.cs | 2 +- .../Processors/IConfigCreationProcessor.cs | 2 +- .../Processors/IServiceProcessor.cs | 8 + .../Processors/ISyncProcessor.cs | 2 +- .../Processors/ISyncSettings.cs | 4 +- .../ServiceProcessorsAutofacModule.cs | 14 + .../Processors/SyncPipelineExecutor.cs | 29 ++ .../Processors/SyncProcessor.cs | 54 +-- .../Recyclarr.TrashLib.csproj | 1 + .../CustomFormat/Api/CustomFormatService.cs | 48 -- .../CustomFormat/Api/ICustomFormatService.cs | 13 - .../Api/IQualityProfileService.cs | 10 - .../Services/CustomFormat/CachePersister.cs | 67 --- .../CustomFormat/CustomFormatAutofacModule.cs | 36 -- .../CustomFormat/CustomFormatUpdater.cs | 297 ------------- .../CustomFormat/Guide/CustomFormatParser.cs | 34 -- .../CustomFormat/Guide/ICustomFormatLoader.cs | 10 - .../Services/CustomFormat/ICachePersister.cs | 13 - .../CustomFormat/ICustomFormatUpdater.cs | 8 - .../Models/Cache/CustomFormatCache.cs | 15 - .../Models/ConflictingCustomFormat.cs | 6 - .../CustomFormat/Models/CustomFormatData.cs | 15 - .../Models/ProcessedCustomFormatData.cs | 22 - .../QualityProfileCustomFormatScoreMapping.cs | 14 - .../CustomFormat/Processors/GuideProcessor.cs | 81 ---- .../Processors/GuideSteps/ConfigStep.cs | 50 --- .../Processors/GuideSteps/CustomFormatStep.cs | 59 --- .../Processors/GuideSteps/IConfigStep.cs | 13 - .../GuideSteps/ICustomFormatStep.cs | 14 - .../GuideSteps/IQualityProfileStep.cs | 11 - .../GuideSteps/QualityProfileStep.cs | 65 --- .../Processors/IGuideProcessor.cs | 22 - .../Processors/IPersistenceProcessor.cs | 19 - .../Processors/PersistenceProcessor.cs | 64 --- .../CustomFormatApiPersistenceStep.cs | 32 -- .../ICustomFormatApiPersistenceStep.cs | 8 - .../PersistenceSteps/IJsonTransactionStep.cs | 15 - .../IQualityProfileApiPersistenceStep.cs | 14 - .../PersistenceSteps/JsonTransactionStep.cs | 206 --------- .../QualityProfileApiPersistenceStep.cs | 92 ---- .../Services/Processors/IServiceProcessor.cs | 6 - .../Services/Processors/RadarrProcessor.cs | 35 -- .../Processors/ServiceProcessorFactory.cs | 29 -- .../ServiceProcessorsAutofacModule.cs | 16 - .../Services/Processors/SonarrProcessor.cs | 64 --- .../QualitySize/IQualitySizeUpdater.cs | 8 - .../QualitySize/QualitySizeAutofacModule.cs | 16 - .../Services/QualitySize/QualitySizeData.cs | 8 - .../QualitySize/QualitySizeUpdater.cs | 141 ------ .../Services/Radarr/RadarrAutofacModule.cs | 11 - .../Guide/ReleaseProfileGuideService.cs | 31 -- .../Guide/ReleaseProfilePaths.cs | 7 - .../ReleaseProfile/IReleaseProfileUpdater.cs | 8 - .../ReleaseProfile/ReleaseProfileUpdater.cs | 275 ------------ .../Services/Sonarr/Api/Objects/SonarrTag.cs | 9 - .../Services/Sonarr/SonarrAutofacModule.cs | 16 - src/Recyclarr.sln.DotSettings | 1 + 319 files changed, 5077 insertions(+), 4218 deletions(-) delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/radarr___list_custom_formats.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/radarr___list_qualities.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/radarr___preview.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/sonarr.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/sonarr___list_custom_formats.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/sonarr___list_qualities.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/sonarr___list_release_profiles.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/sonarr___preview.xml delete mode 100644 src/.idea/.idea.Recyclarr/.idea/runConfigurations/sonarr__custom_config_dir_.xml rename src/.idea/.idea.Recyclarr/.idea/runConfigurations/{radarr.xml => sync___preview.xml} (83%) delete mode 100644 src/Recyclarr.Common/Autofac/LifetimeScopedValue.cs create mode 100644 src/Recyclarr.Common/GenericEqualityComparer.cs delete mode 100644 src/Recyclarr.TrashLib.TestLibrary/CfTestUtils.cs create mode 100644 src/Recyclarr.TrashLib.TestLibrary/MockSyncSettings.cs create mode 100644 src/Recyclarr.TrashLib.TestLibrary/NewQp.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/Data/ImportableCustomFormat1.json delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/Data/ImportableCustomFormat1_Processed.json delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/Data/ImportableCustomFormat2.json delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/Data/ImportableCustomFormat2_Processed.json delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/Data/NoScore.json delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/Data/WontBeInConfig.json delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/GuideProcessorTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/GuideSteps/ConfigStepTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/GuideSteps/CustomFormatStepTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/GuideSteps/QualityProfileStepTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/PersistenceProcessorTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/PersistenceSteps/CustomFormatApiPersistenceStepTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/PersistenceSteps/JsonTransactionStepTest.cs delete mode 100644 src/Recyclarr.TrashLib.Tests/CustomFormat/Processors/PersistenceSteps/QualityProfileApiPersistenceStepTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/GlobalUsings.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/CustomFormat/Guide/CustomFormatParserTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/CustomFormat/Models/CustomFormatDataComparerTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/CustomFormat/PipelinePhases/CustomFormatConfigPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/CustomFormat/PipelinePhases/CustomFormatTransactionPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileConfigPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileTransactionPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualitySize/Guide/Data/invalid_quality_size.json create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualitySize/Guide/Data/quality_size.json create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualitySize/Guide/QualityGuideServiceTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualitySize/Guide/QualitySizeGuideParserTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeGuidePhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeTransactionPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/Tags/PipelinePhases/TagApiFetchPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/Tags/PipelinePhases/TagApiPersistencePhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/Tags/PipelinePhases/TagConfigPhaseTest.cs create mode 100644 src/Recyclarr.TrashLib.Tests/Pipelines/Tags/PipelinePhases/TagTransactionPhaseTest.cs rename src/Recyclarr.TrashLib/{Services/System/SystemServiceAutofacModule.cs => ApiServices/ApiServicesAutofacModule.cs} (69%) rename src/Recyclarr.TrashLib/{Services => ApiServices}/System/Dto/SystemStatus.cs (57%) rename src/Recyclarr.TrashLib/{Services => ApiServices}/System/IServiceInformation.cs (75%) rename src/Recyclarr.TrashLib/{Services => ApiServices}/System/ISystemApiService.cs (60%) rename src/Recyclarr.TrashLib/{Services => ApiServices}/System/ServiceInformation.cs (94%) rename src/Recyclarr.TrashLib/{Services => ApiServices}/System/SystemApiService.cs (83%) create mode 100644 src/Recyclarr.TrashLib/Compatibility/CompatibilityAutofacModule.cs rename src/Recyclarr.TrashLib/{Services => Compatibility}/Radarr/RadarrCapabilities.cs (85%) rename src/Recyclarr.TrashLib/{Services => Compatibility}/Radarr/RadarrCapabilityChecker.cs (71%) rename src/Recyclarr.TrashLib/{Services/Common => Compatibility}/ServiceCapabilityChecker.cs (86%) rename src/Recyclarr.TrashLib/{Services/Sonarr/Capabilities => Compatibility/Sonarr}/ISonarrCapabilityChecker.cs (73%) rename src/Recyclarr.TrashLib/{Services/Sonarr/Capabilities => Compatibility/Sonarr}/SonarrCapabilities.cs (90%) rename src/Recyclarr.TrashLib/{Services/Sonarr/Capabilities => Compatibility/Sonarr}/SonarrCapabilityChecker.cs (82%) rename src/Recyclarr.TrashLib/{Services/Sonarr/Capabilities => Compatibility/Sonarr}/SonarrCapabilityEnforcer.cs (93%) rename src/Recyclarr.TrashLib/{Services/Radarr/Config => Config/Services/Radarr}/RadarrConfiguration.cs (52%) rename src/Recyclarr.TrashLib/{Services/Radarr/Config => Config/Services/Radarr}/RadarrConfigurationValidator.cs (75%) rename src/Recyclarr.TrashLib/{Services/Sonarr/Config => Config/Services/Sonarr}/SonarrConfiguration.cs (88%) rename src/Recyclarr.TrashLib/{Services/Sonarr/Config => Config/Services/Sonarr}/SonarrConfigurationValidator.cs (96%) create mode 100644 src/Recyclarr.TrashLib/Json/ServiceContractResolver.cs create mode 100644 src/Recyclarr.TrashLib/Json/ServiceJsonSerializerFactory.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Api/CustomFormatService.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Api/ICustomFormatService.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Cache/CacheException.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Cache/CachePersister.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Cache/ICachePersister.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Cache/ProcessedCustomFormatCache.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/CustomFormatAutofacModule.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/CustomFormatSyncPipeline.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/CustomFormatCategoryItem.cs (61%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/CustomFormatCategoryParser.cs (97%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/CustomFormatDataLister.cs (95%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/CustomFormatGuideService.cs (80%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/CustomFormatLoader.cs (91%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Guide/CustomFormatParser.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/CustomFormatPaths.cs (75%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/ICustomFormatCategoryParser.cs (74%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/ICustomFormatGuideService.cs (59%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Guide/ICustomFormatLoader.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Guide/ICustomFormatParser.cs (51%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Models/ConflictingCustomFormat.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Models/CustomFormatCache.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Models/CustomFormatData.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Models/CustomFormatDataComparer.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/Models/FieldsArrayJsonConverter.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/CustomFormat/Models/ProcessedConfigData.cs (53%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/PipelinePhases/CustomFormatApiFetchPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/PipelinePhases/CustomFormatApiPersistencePhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/PipelinePhases/CustomFormatConfigPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/PipelinePhases/CustomFormatPreviewPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/CustomFormat/PipelinePhases/CustomFormatTransactionPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/IPipelineCache.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ISyncPipeline.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/Api/IQualityProfileService.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/Api/QualityProfileDto.cs rename src/Recyclarr.TrashLib/{Services/CustomFormat => Pipelines/QualityProfile}/Api/QualityProfileService.cs (52%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/PipelinePhases/QualityProfileApiFetchPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/PipelinePhases/QualityProfileApiPersistencePhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/PipelinePhases/QualityProfileConfigPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/PipelinePhases/QualityProfilePreviewPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/PipelinePhases/QualityProfileTransactionPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/QualityProfileAutofacModule.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualityProfile/QualityProfileSyncPipeline.cs rename src/Recyclarr.TrashLib/{Services/CustomFormat/Models => Pipelines/QualityProfile}/UpdatedFormatScore.cs (64%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Api/IQualityDefinitionService.cs (62%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Api/QualityDefinitionService.cs (83%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Api/ServiceQualityDefinitionItem.cs (92%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Guide/IQualityGuideService.cs (73%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Guide/QualityGuideService.cs (77%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Guide/QualityItem.cs (95%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Guide/QualitySizeDataLister.cs (93%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Guide/QualitySizeGuideParser.cs (59%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/Guide/QualitySizePaths.cs (69%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/PipelinePhases/QualitySizeApiFetchPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/PipelinePhases/QualitySizeApiPersistencePhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/PipelinePhases/QualitySizeGuidePhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/PipelinePhases/QualitySizePreviewPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/PipelinePhases/QualitySizeTransactionPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/QualitySizeAutofacModule.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/QualitySizeData.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/QualitySize/QualitySizeItem.cs (90%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/QualitySize/QualitySizeSyncPipeline.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/IReleaseProfileApiService.cs (79%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/ISonarrReleaseProfileCompatibilityHandler.cs (54%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/Mappings/SonarrApiObjectMappingProfile.cs (86%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/Objects/SonarrReleaseProfile.cs (96%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/ReleaseProfileApiService.cs (89%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/Schemas/SonarrReleaseProfileSchema.cs (97%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Api/SonarrReleaseProfileCompatibilityHandler.cs (90%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/IReleaseProfileFilter.cs (54%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/IReleaseProfileFilterPipeline.cs (55%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/IncludeExcludeFilter.cs (85%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/ReleaseProfileDataFilterer.cs (80%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/ReleaseProfileDataValidationFilterer.cs (96%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/ReleaseProfileFilterPipeline.cs (81%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Filters/StrictNegativeScoresFilter.cs (86%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Guide/IReleaseProfileGuideService.cs (64%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Guide/ReleaseProfileDataLister.cs (98%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/Guide/ReleaseProfileGuideParser.cs (92%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/Guide/ReleaseProfileGuideService.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/Models/ReleaseProfileTransactionData.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/PipelinePhases/ReleaseProfileApiFetchPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/PipelinePhases/ReleaseProfileApiPersistencePhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/PipelinePhases/ReleaseProfileConfigPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/PipelinePhases/ReleaseProfilePreviewPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/PipelinePhases/ReleaseProfileTransactionPhase.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/ReleaseProfileAutofacModule.cs (52%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/ReleaseProfileData.cs (95%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/ReleaseProfileDataValidator.cs (93%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/ReleaseProfile/ReleaseProfileSyncPipeline.cs rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/ScopedState.cs (96%) rename src/Recyclarr.TrashLib/{Services => Pipelines}/ReleaseProfile/TermDataConverter.cs (79%) rename src/Recyclarr.TrashLib/{Services/Sonarr => Pipelines/Tags}/Api/ISonarrTagApiService.cs (68%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/Api/SonarrTag.cs rename src/Recyclarr.TrashLib/{Services/Sonarr => Pipelines/Tags}/Api/SonarrTagApiService.cs (87%) create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/PipelinePhases/TagApiFetchPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/PipelinePhases/TagApiPersistencePhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/PipelinePhases/TagConfigPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/PipelinePhases/TagPreviewPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/PipelinePhases/TagTransactionPhase.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/ServiceTagCache.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/TagSyncPipeline.cs create mode 100644 src/Recyclarr.TrashLib/Pipelines/Tags/TagsAutofacModule.cs rename src/Recyclarr.TrashLib/{Services => }/Processors/ConfigCreationProcessor.cs (95%) rename src/Recyclarr.TrashLib/{Services => }/Processors/ExitStatus.cs (53%) rename src/Recyclarr.TrashLib/{Services => }/Processors/IConfigCreationProcessor.cs (64%) create mode 100644 src/Recyclarr.TrashLib/Processors/IServiceProcessor.cs rename src/Recyclarr.TrashLib/{Services => }/Processors/ISyncProcessor.cs (66%) rename src/Recyclarr.TrashLib/{Services => }/Processors/ISyncSettings.cs (68%) create mode 100644 src/Recyclarr.TrashLib/Processors/ServiceProcessorsAutofacModule.cs create mode 100644 src/Recyclarr.TrashLib/Processors/SyncPipelineExecutor.cs rename src/Recyclarr.TrashLib/{Services => }/Processors/SyncProcessor.cs (67%) delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Api/CustomFormatService.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Api/ICustomFormatService.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Api/IQualityProfileService.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/CachePersister.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/CustomFormatAutofacModule.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/CustomFormatUpdater.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Guide/CustomFormatParser.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Guide/ICustomFormatLoader.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/ICachePersister.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/ICustomFormatUpdater.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Models/Cache/CustomFormatCache.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Models/ConflictingCustomFormat.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Models/CustomFormatData.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Models/ProcessedCustomFormatData.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Models/QualityProfileCustomFormatScoreMapping.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideSteps/ConfigStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideSteps/CustomFormatStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideSteps/IConfigStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideSteps/ICustomFormatStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideSteps/IQualityProfileStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/GuideSteps/QualityProfileStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/IGuideProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/IPersistenceProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceSteps/CustomFormatApiPersistenceStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceSteps/ICustomFormatApiPersistenceStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceSteps/IJsonTransactionStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceSteps/IQualityProfileApiPersistenceStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceSteps/JsonTransactionStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/CustomFormat/Processors/PersistenceSteps/QualityProfileApiPersistenceStep.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Processors/IServiceProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Processors/RadarrProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Processors/ServiceProcessorFactory.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Processors/ServiceProcessorsAutofacModule.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Processors/SonarrProcessor.cs delete mode 100644 src/Recyclarr.TrashLib/Services/QualitySize/IQualitySizeUpdater.cs delete mode 100644 src/Recyclarr.TrashLib/Services/QualitySize/QualitySizeAutofacModule.cs delete mode 100644 src/Recyclarr.TrashLib/Services/QualitySize/QualitySizeData.cs delete mode 100644 src/Recyclarr.TrashLib/Services/QualitySize/QualitySizeUpdater.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Radarr/RadarrAutofacModule.cs delete mode 100644 src/Recyclarr.TrashLib/Services/ReleaseProfile/Guide/ReleaseProfileGuideService.cs delete mode 100644 src/Recyclarr.TrashLib/Services/ReleaseProfile/Guide/ReleaseProfilePaths.cs delete mode 100644 src/Recyclarr.TrashLib/Services/ReleaseProfile/IReleaseProfileUpdater.cs delete mode 100644 src/Recyclarr.TrashLib/Services/ReleaseProfile/ReleaseProfileUpdater.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Sonarr/Api/Objects/SonarrTag.cs delete mode 100644 src/Recyclarr.TrashLib/Services/Sonarr/SonarrAutofacModule.cs diff --git a/.editorconfig b/.editorconfig index 32463602..086e1e78 100644 --- a/.editorconfig +++ b/.editorconfig @@ -340,6 +340,7 @@ resharper_csharp_space_after_unary_operator = false resharper_csharp_stick_comment = false resharper_csharp_wrap_after_declaration_lpar = true resharper_csharp_wrap_lines = true +resharper_csharp_wrap_parameters_style = chop_if_long resharper_cxxcli_property_declaration_braces = next_line resharper_default_exception_variable_name = e resharper_default_value_when_type_evident = default_literal @@ -442,8 +443,8 @@ resharper_line_break_before_requires_clause = do_not_change resharper_linkage_specification_braces = end_of_line resharper_linkage_specification_indentation = none resharper_local_function_body = block_body -resharper_macro_block_begin = -resharper_macro_block_end = +resharper_macro_block_begin = +resharper_macro_block_end = resharper_max_array_initializer_elements_on_line = 10000 resharper_max_attribute_length_for_same_line = 60 resharper_max_enum_members_on_line = 3 @@ -510,7 +511,7 @@ resharper_remove_blank_lines_near_braces_in_declarations = true resharper_remove_this_qualifier = true resharper_requires_expression_braces = next_line resharper_resx_attribute_indent = single_indent -resharper_resx_linebreak_before_elements = +resharper_resx_linebreak_before_elements = resharper_resx_max_blank_lines_between_tags = 0 resharper_resx_max_line_length = 2147483647 resharper_resx_pi_attribute_style = do_not_touch @@ -741,7 +742,7 @@ resharper_xmldoc_wrap_lines = true resharper_xmldoc_wrap_tags_and_pi = true resharper_xmldoc_wrap_text = true resharper_xml_attribute_indent = align_by_first_attribute -resharper_xml_linebreak_before_elements = +resharper_xml_linebreak_before_elements = resharper_xml_max_blank_lines_between_tags = 2 resharper_xml_max_line_length = 120 resharper_xml_pi_attribute_style = do_not_touch diff --git a/schemas/config-schema.json b/schemas/config-schema.json index b8d889ce..7c8185e0 100644 --- a/schemas/config-schema.json +++ b/schemas/config-schema.json @@ -67,6 +67,11 @@ "description": "If enabled, custom formats that you remove from your YAML configuration OR that are removed from the guide will be deleted from your Radarr instance.", "default": false }, + "replace_existing_custom_formats": { + "type": "boolean", + "description": "If disabled, custom formats that Recyclarr didn't explicitly create or know about will not be replaced.", + "default": true + }, "custom_formats": { "type": "array", "minItems": 1, @@ -136,7 +141,7 @@ "api_key": { "type": "string", "minLength": 1, - "description": "The API key from Radarr." + "description": "The API key from Radarr" }, "quality_definition": { "$ref": "#/$defs/quality_definition" @@ -144,6 +149,9 @@ "delete_old_custom_formats": { "$ref": "#/$defs/delete_old_custom_formats" }, + "replace_existing_custom_formats": { + "$ref": "#/$defs/replace_existing_custom_formats" + }, "custom_formats": { "$ref": "#/$defs/custom_formats" } @@ -173,6 +181,9 @@ "delete_old_custom_formats": { "$ref": "#/$defs/delete_old_custom_formats" }, + "replace_existing_custom_formats": { + "$ref": "#/$defs/replace_existing_custom_formats" + }, "custom_formats": { "$ref": "#/$defs/custom_formats" }, diff --git a/src/.idea/.idea.Recyclarr/.idea/indexLayout.xml b/src/.idea/.idea.Recyclarr/.idea/indexLayout.xml index 7b08163c..063a7aec 100644 --- a/src/.idea/.idea.Recyclarr/.idea/indexLayout.xml +++ b/src/.idea/.idea.Recyclarr/.idea/indexLayout.xml @@ -1,7 +1,9 @@ - + + ../../../code + diff --git a/src/.idea/.idea.Recyclarr/.idea/runConfigurations/list release-profiles --terms.run.xml b/src/.idea/.idea.Recyclarr/.idea/runConfigurations/list release-profiles --terms.run.xml index 1b44937d..00785080 100644 --- a/src/.idea/.idea.Recyclarr/.idea/runConfigurations/list release-profiles --terms.run.xml +++ b/src/.idea/.idea.Recyclarr/.idea/runConfigurations/list release-profiles --terms.run.xml @@ -1,7 +1,7 @@