From 5e7f0f9d78021c55450fff3e95c6d9d5b9e3cdde Mon Sep 17 00:00:00 2001 From: Qstick Date: Thu, 26 Dec 2019 21:11:44 -0500 Subject: [PATCH] Fixed: Tmdb Rename Tokens Fixes #4004 --- .../FileNameBuilderTests/IdFixture.cs | 51 +++++++++++++++++++ .../Organizer/FileNameBuilder.cs | 11 ++-- .../Organizer/FileNameSampleService.cs | 1 + 3 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/IdFixture.cs diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/IdFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/IdFixture.cs new file mode 100644 index 000000000..33c362f60 --- /dev/null +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/IdFixture.cs @@ -0,0 +1,51 @@ +using FizzWare.NBuilder; +using FluentAssertions; +using NUnit.Framework; +using NUnit.Framework.Internal; +using NzbDrone.Core.Organizer; +using NzbDrone.Core.Test.Framework; +using NzbDrone.Core.Movies; + +namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests +{ + [TestFixture] + public class IdFixture : CoreTest + { + private Movie _movie; + private NamingConfig _namingConfig; + + [SetUp] + public void Setup() + { + _movie = Builder + .CreateNew() + .With(s => s.Title = "Movie Title") + .With(s => s.ImdbId = "tt12345") + .With(s => s.TmdbId = 123456) + .Build(); + + _namingConfig = NamingConfig.Default; + + Mocker.GetMock() + .Setup(c => c.GetConfig()).Returns(_namingConfig); + } + + [Test] + public void should_add_imdb_id() + { + _namingConfig.MovieFolderFormat = "{Movie Title} ({ImdbId})"; + + Subject.GetMovieFolder(_movie) + .Should().Be($"Movie Title ({_movie.ImdbId})"); + } + + [Test] + public void should_add_tmdb_id() + { + _namingConfig.MovieFolderFormat = "{Movie Title} ({TmdbId})"; + + Subject.GetMovieFolder(_movie) + .Should().Be($"Movie Title ({_movie.TmdbId})"); + } + } +} \ No newline at end of file diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index ff3afd934..dad809703 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -91,7 +91,7 @@ public string BuildFileName(Movie movie, MovieFile movieFile, NamingConfig namin AddMovieTokens(tokenHandlers, movie); AddReleaseDateTokens(tokenHandlers, movie.Year); - AddImdbIdTokens(tokenHandlers, movie.ImdbId); + AddIdTokens(tokenHandlers, movie); AddQualityTokens(tokenHandlers, movie, movieFile); AddMediaInfoTokens(tokenHandlers, movieFile); AddMovieFileTokens(tokenHandlers, movieFile); @@ -140,7 +140,7 @@ public string BuildMoviePath(Movie movie, NamingConfig namingConfig = null) AddMovieTokens(tokenHandlers, movie); AddReleaseDateTokens(tokenHandlers, movie.Year); - AddImdbIdTokens(tokenHandlers, movie.ImdbId); + AddIdTokens(tokenHandlers, movie); if(movie.MovieFile != null) { @@ -183,7 +183,7 @@ public string GetMovieFolder(Movie movie, NamingConfig namingConfig = null) AddMovieTokens(tokenHandlers, movie); AddReleaseDateTokens(tokenHandlers, movie.Year); - AddImdbIdTokens(tokenHandlers, movie.ImdbId); + AddIdTokens(tokenHandlers, movie); if (movie.MovieFile != null) { @@ -276,9 +276,10 @@ private void AddReleaseDateTokens(Dictionary> t tokenHandlers["{Release Year}"] = m => string.Format("{0}", releaseYear.ToString()); //Do I need m.CustomFormat? } - private void AddImdbIdTokens(Dictionary> tokenHandlers, string imdbId) + private void AddIdTokens(Dictionary> tokenHandlers, Movie movie) { - tokenHandlers["{IMDb Id}"] = m => $"{imdbId}"; + tokenHandlers["{ImdbId}"] = m => movie.ImdbId ?? string.Empty; + tokenHandlers["{TmdbId}"] = m => movie.TmdbId.ToString(); } private void AddMovieFileTokens(Dictionary> tokenHandlers, MovieFile movieFile) diff --git a/src/NzbDrone.Core/Organizer/FileNameSampleService.cs b/src/NzbDrone.Core/Organizer/FileNameSampleService.cs index 5d03e7940..77411aff8 100644 --- a/src/NzbDrone.Core/Organizer/FileNameSampleService.cs +++ b/src/NzbDrone.Core/Organizer/FileNameSampleService.cs @@ -67,6 +67,7 @@ public FileNameSampleService(IBuildFileNames buildFileNames) Title = "The Movie: Title", Year = 2010, ImdbId = "tt0066921", + TmdbId = 345691, MovieFile = _movieFile, MovieFileId = 1, };