From 0fdfbe1453dccea4e004a12ead5412e1a5185c8d Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 6 Sep 2025 12:23:56 -0500 Subject: [PATCH] Fixed: Replace illegal characters even when renaming is disabled (cherry picked from commit 4d8a4436810828494e99f0854cf6de3269668fe4) --- .../FileNameBuilderTests/FileNameBuilderFixture.cs | 14 ++++++++++++++ src/NzbDrone.Core/Organizer/FileNameBuilder.cs | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs index 550288f69..da3733002 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs @@ -562,6 +562,20 @@ public void use_path_when_sceneName_and_relative_path_are_null() .Should().Be(Path.GetFileNameWithoutExtension(_trackFile.Path)); } + [Test] + public void should_replace_illegal_characters_when_renaming_is_disabled() + { + _namingConfig.RenameTracks = false; + _namingConfig.ReplaceIllegalCharacters = true; + _namingConfig.ColonReplacementFormat = ColonReplacementFormat.Smart; + + _trackFile.SceneName = "Linkin.Park.06.FLAC:LOL"; + _trackFile.Path = "Linkin Park - 06 - Test"; + + Subject.BuildTrackFileName(new List { _track1 }, _artist, _album, _trackFile) + .Should().Be("Linkin.Park.06.FLAC-LOL"); + } + [Test] public void should_not_clean_track_title_if_there_is_only_one() { diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index a3342f5b3..5c52c9ceb 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -661,10 +661,10 @@ private string GetOriginalTitle(TrackFile trackFile) { if (trackFile.SceneName.IsNullOrWhiteSpace()) { - return GetOriginalFileName(trackFile); + return CleanFileName(GetOriginalFileName(trackFile)); } - return trackFile.SceneName; + return CleanFileName(trackFile.SceneName); } private string GetOriginalFileName(TrackFile trackFile)