diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderFixture.cs index 95d27ef02..e0a06619d 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderFixture.cs @@ -478,13 +478,13 @@ namespace NzbDrone.Core.Test.OrganizerTests } [Test] - public void should_replace_multiple_absolute_numbering_when_series_is_anime() + public void should_use_dash_as_separator_when_multi_episode_style_is_extend_for_anime() { _series.SeriesType = SeriesTypes.Anime; _namingConfig.AnimeEpisodeFormat = "{Series Title} - {absolute:000} - {Episode Title}"; Subject.BuildFilename(new List { _episode1, _episode2 }, _series, _episodeFile) - .Should().Be("South Park - 100 - 101 - City Sushi"); + .Should().Be("South Park - 100-101 - City Sushi"); } [Test] @@ -499,5 +499,16 @@ namespace NzbDrone.Core.Test.OrganizerTests Subject.BuildFilename(new List { _episode1, }, _series, _episodeFile) .Should().Be("South Park - 15x06 - City Sushi"); } + + [Test] + public void should_duplicate_absolute_pattern_when_multi_episode_style_is_duplicate() + { + _series.SeriesType = SeriesTypes.Anime; + _namingConfig.MultiEpisodeStyle = (int)MultiEpisodeStyle.Duplicate; + _namingConfig.AnimeEpisodeFormat = "{Series Title} - {absolute:000} - {Episode Title}"; + + Subject.BuildFilename(new List { _episode1, _episode2 }, _series, _episodeFile) + .Should().Be("South Park - 100 - 101 - City Sushi"); + } } } \ No newline at end of file diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index c7e78581e..7a65d7dfb 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -183,8 +183,27 @@ namespace NzbDrone.Core.Organizer foreach (var episode in sortedEpisodes.Skip(1)) { - absoluteEpisodePattern += absoluteEpisodeFormat.Separator + - absoluteEpisodeFormat.AbsoluteEpisodePattern; + switch ((MultiEpisodeStyle)namingConfig.MultiEpisodeStyle) + { + case MultiEpisodeStyle.Duplicate: + absoluteEpisodePattern += absoluteEpisodeFormat.Separator + + absoluteEpisodeFormat.AbsoluteEpisodePattern; + break; + + case MultiEpisodeStyle.Repeat: + absoluteEpisodePattern += absoluteEpisodeFormat.Separator + + absoluteEpisodeFormat.AbsoluteEpisodePattern; + break; + + case MultiEpisodeStyle.Scene: + absoluteEpisodePattern += "-" + absoluteEpisodeFormat.AbsoluteEpisodePattern; + break; + + //MultiEpisodeStyle.Extend + default: + absoluteEpisodePattern += "-" + absoluteEpisodeFormat.AbsoluteEpisodePattern; + break; + } episodeTitles.Add(episode.Title.TrimEnd(EpisodeTitleTrimCharaters)); }