From f005edfcf0311c1e921e199acd89b24394b33259 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Thu, 18 Feb 2016 21:55:45 +0100 Subject: [PATCH] Don't use Sonarr as ReleaseGroup if the pattern contains an advanced prefix/suffix. --- .../FileNameBuilderTests/FileNameBuilderFixture.cs | 12 ++++++++++++ src/NzbDrone.Core/Organizer/FileNameBuilder.cs | 14 +++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs index 3652bbbf2..d99a5696b 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs @@ -712,6 +712,18 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests .Should().Be("Sonarr"); } + [TestCase("{Episode Title}{-Release Group}", "City Sushi")] + [TestCase("{Episode Title}{ Release Group}", "City Sushi")] + [TestCase("{Episode Title}{ [Release Group]}", "City Sushi")] + public void should_not_use_Sonarr_as_release_group_if_pattern_has_separator(string pattern, string expectedFileName) + { + _episodeFile.ReleaseGroup = null; + _namingConfig.StandardEpisodeFormat = pattern; + + Subject.BuildFileName(new List { _episode1 }, _series, _episodeFile) + .Should().Be(expectedFileName); + } + [TestCase("0SEC")] [TestCase("2HD")] [TestCase("IMMERSE")] diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index 46d92348a..48ff833f0 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -425,7 +425,7 @@ namespace NzbDrone.Core.Organizer { tokenHandlers["{Original Title}"] = m => GetOriginalTitle(episodeFile); tokenHandlers["{Original Filename}"] = m => GetOriginalFileName(episodeFile); - tokenHandlers["{Release Group}"] = m => episodeFile.ReleaseGroup ?? "Sonarr"; + tokenHandlers["{Release Group}"] = m => episodeFile.ReleaseGroup ?? m.DefaultValue("Sonarr"); } private void AddQualityTokens(Dictionary> tokenHandlers, Series series, EpisodeFile episodeFile) @@ -759,6 +759,18 @@ namespace NzbDrone.Core.Organizer public string Suffix { get; set; } public string Token { get; set; } public string CustomFormat { get; set; } + + public string DefaultValue(string defaultValue) + { + if (string.IsNullOrEmpty(Prefix) && string.IsNullOrEmpty(Suffix)) + { + return defaultValue; + } + else + { + return string.Empty; + } + } } public enum MultiEpisodeStyle