diff --git a/CHANGELOG.md b/CHANGELOG.md index 40845590..373f8064 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Sync file naming configuration even if `rename` is not set to `true`. + ## [6.0.0] - 2023-09-29 This release contains **BREAKING CHANGES**. See the [v6.0 Upgrade Guide][breaking6] for required diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingTransactionPhase.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingTransactionPhase.cs index 08b0a5b9..5f2ac3ed 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingTransactionPhase.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingTransactionPhase.cs @@ -19,37 +19,25 @@ public class MediaNamingTransactionPhase private static RadarrMediaNamingDto UpdateRadarrDto(RadarrMediaNamingDto serviceDto, ProcessedNamingConfig config) { var configDto = (RadarrMediaNamingDto) config.Dto; - var combinedDto = serviceDto with + return serviceDto with { RenameMovies = configDto.RenameMovies, - MovieFolderFormat = configDto.MovieFolderFormat + MovieFolderFormat = configDto.MovieFolderFormat, + StandardMovieFormat = configDto.StandardMovieFormat }; - - if (configDto.RenameMovies is true) - { - combinedDto.StandardMovieFormat = configDto.StandardMovieFormat; - } - - return combinedDto; } private static SonarrMediaNamingDto UpdateSonarrDto(SonarrMediaNamingDto serviceDto, ProcessedNamingConfig config) { var configDto = (SonarrMediaNamingDto) config.Dto; - var combinedDto = serviceDto with + return serviceDto with { RenameEpisodes = configDto.RenameEpisodes, SeriesFolderFormat = configDto.SeriesFolderFormat, - SeasonFolderFormat = configDto.SeasonFolderFormat + SeasonFolderFormat = configDto.SeasonFolderFormat, + StandardEpisodeFormat = configDto.StandardEpisodeFormat, + DailyEpisodeFormat = configDto.DailyEpisodeFormat, + AnimeEpisodeFormat = configDto.AnimeEpisodeFormat }; - - if (configDto.RenameEpisodes is true) - { - combinedDto.StandardEpisodeFormat = configDto.StandardEpisodeFormat; - combinedDto.DailyEpisodeFormat = configDto.DailyEpisodeFormat; - combinedDto.AnimeEpisodeFormat = configDto.AnimeEpisodeFormat; - } - - return combinedDto; } } diff --git a/src/Recyclarr.ServarrApi/MediaNaming/RadarrMediaNamingDto.cs b/src/Recyclarr.ServarrApi/MediaNaming/RadarrMediaNamingDto.cs index 3b044603..73bf08f3 100644 --- a/src/Recyclarr.ServarrApi/MediaNaming/RadarrMediaNamingDto.cs +++ b/src/Recyclarr.ServarrApi/MediaNaming/RadarrMediaNamingDto.cs @@ -5,14 +5,14 @@ namespace Recyclarr.ServarrApi.MediaNaming; public record RadarrMediaNamingDto : MediaNamingDto { - private string? _movieFormat; + private readonly string? _movieFormat; private readonly string? _folderFormat; private readonly bool? _renameMovies; public string? StandardMovieFormat { get => _movieFormat; - set => DtoUtil.SetIfNotNull(ref _movieFormat, value); + init => DtoUtil.SetIfNotNull(ref _movieFormat, value); } public string? MovieFolderFormat @@ -27,6 +27,6 @@ public record RadarrMediaNamingDto : MediaNamingDto init => DtoUtil.SetIfNotNull(ref _renameMovies, value); } - [UsedImplicitly, JsonExtensionData] + [UsedImplicitly] [JsonExtensionData] public Dictionary ExtraJson { get; init; } = new(); } diff --git a/src/Recyclarr.ServarrApi/MediaNaming/SonarrMediaNamingDto.cs b/src/Recyclarr.ServarrApi/MediaNaming/SonarrMediaNamingDto.cs index 2aff63d7..5284ec06 100644 --- a/src/Recyclarr.ServarrApi/MediaNaming/SonarrMediaNamingDto.cs +++ b/src/Recyclarr.ServarrApi/MediaNaming/SonarrMediaNamingDto.cs @@ -7,9 +7,9 @@ public record SonarrMediaNamingDto : MediaNamingDto { private readonly string? _seriesFolderFormat; private readonly string? _seasonFolderFormat; - private string? _standardEpisodeFormat; - private string? _dailyEpisodeFormat; - private string? _animeEpisodeFormat; + private readonly string? _standardEpisodeFormat; + private readonly string? _dailyEpisodeFormat; + private readonly string? _animeEpisodeFormat; private readonly bool? _renameEpisodes; public string? SeriesFolderFormat @@ -27,19 +27,19 @@ public record SonarrMediaNamingDto : MediaNamingDto public string? StandardEpisodeFormat { get => _standardEpisodeFormat; - set => DtoUtil.SetIfNotNull(ref _standardEpisodeFormat, value); + init => DtoUtil.SetIfNotNull(ref _standardEpisodeFormat, value); } public string? DailyEpisodeFormat { get => _dailyEpisodeFormat; - set => DtoUtil.SetIfNotNull(ref _dailyEpisodeFormat, value); + init => DtoUtil.SetIfNotNull(ref _dailyEpisodeFormat, value); } public string? AnimeEpisodeFormat { get => _animeEpisodeFormat; - set => DtoUtil.SetIfNotNull(ref _animeEpisodeFormat, value); + init => DtoUtil.SetIfNotNull(ref _animeEpisodeFormat, value); } public bool? RenameEpisodes @@ -48,6 +48,6 @@ public record SonarrMediaNamingDto : MediaNamingDto init => DtoUtil.SetIfNotNull(ref _renameEpisodes, value); } - [UsedImplicitly, JsonExtensionData] + [UsedImplicitly] [JsonExtensionData] public Dictionary ExtraJson { get; init; } = new(); } diff --git a/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs b/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs index e2a28bdb..31cebba9 100644 --- a/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs +++ b/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs @@ -7,7 +7,7 @@ namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming; [Parallelizable(ParallelScope.All)] public class MediaNamingTransactionPhaseRadarrTest { - [Test, AutoMockData] + [Test] [AutoMockData] public void Radarr_left_null( MediaNamingTransactionPhase sut) { @@ -28,7 +28,7 @@ public class MediaNamingTransactionPhaseRadarrTest result.Should().BeEquivalentTo(right.Dto, o => o.RespectingRuntimeTypes()); } - [Test, AutoMockData] + [Test] [AutoMockData] public void Radarr_right_null( MediaNamingTransactionPhase sut) { @@ -49,7 +49,7 @@ public class MediaNamingTransactionPhaseRadarrTest result.Should().BeEquivalentTo(left, o => o.RespectingRuntimeTypes()); } - [Test, AutoMockData] + [Test] [AutoMockData] public void Radarr_right_and_left_with_rename( MediaNamingTransactionPhase sut) { @@ -75,7 +75,7 @@ public class MediaNamingTransactionPhaseRadarrTest result.Should().BeEquivalentTo(right.Dto, o => o.RespectingRuntimeTypes()); } - [Test, AutoMockData] + [Test] [AutoMockData] public void Radarr_right_and_left_without_rename( MediaNamingTransactionPhase sut) { @@ -101,7 +101,7 @@ public class MediaNamingTransactionPhaseRadarrTest result.Should().BeEquivalentTo(new RadarrMediaNamingDto { RenameMovies = false, - StandardMovieFormat = "file_format", + StandardMovieFormat = "file_format2", MovieFolderFormat = "folder_format2" }, o => o.RespectingRuntimeTypes()); diff --git a/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs b/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs index e9a0f7b3..a5c49fde 100644 --- a/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs +++ b/src/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs @@ -7,7 +7,7 @@ namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming; [Parallelizable(ParallelScope.All)] public class MediaNamingTransactionPhaseSonarrTest { - [Test, AutoMockData] + [Test] [AutoMockData] public void Sonarr_left_null( MediaNamingTransactionPhase sut) { @@ -31,7 +31,7 @@ public class MediaNamingTransactionPhaseSonarrTest result.Should().BeEquivalentTo(right.Dto, o => o.RespectingRuntimeTypes()); } - [Test, AutoMockData] + [Test] [AutoMockData] public void Sonarr_right_null( MediaNamingTransactionPhase sut) { @@ -55,7 +55,7 @@ public class MediaNamingTransactionPhaseSonarrTest result.Should().BeEquivalentTo(left, o => o.RespectingRuntimeTypes()); } - [Test, AutoMockData] + [Test] [AutoMockData] public void Sonarr_right_and_left_with_rename( MediaNamingTransactionPhase sut) { @@ -87,7 +87,7 @@ public class MediaNamingTransactionPhaseSonarrTest result.Should().BeEquivalentTo(right.Dto, o => o.RespectingRuntimeTypes()); } - [Test, AutoMockData] + [Test] [AutoMockData] public void Sonarr_right_and_left_without_rename( MediaNamingTransactionPhase sut) { @@ -121,9 +121,9 @@ public class MediaNamingTransactionPhaseSonarrTest RenameEpisodes = false, SeasonFolderFormat = "season_default2", SeriesFolderFormat = "series_plex2", - StandardEpisodeFormat = "episodes_standard_default", - DailyEpisodeFormat = "episodes_daily_default", - AnimeEpisodeFormat = "episodes_anime_default" + StandardEpisodeFormat = "episodes_standard_default2", + DailyEpisodeFormat = "episodes_daily_default2", + AnimeEpisodeFormat = "episodes_anime_default2" }, o => o.RespectingRuntimeTypes()); }