fix: Sync file naming even if rename is not true

spectre-console-remove-di-hacks
Robert Dailey 7 months ago
parent 9f7313c180
commit d0ff537d06

@ -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

@ -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;
}
}

@ -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<string, object> ExtraJson { get; init; } = new();
}

@ -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<string, object> ExtraJson { get; init; } = new();
}

@ -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());

@ -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());
}

Loading…
Cancel
Save