mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-10-01 07:55:22 +02:00
@@ -24,18 +24,24 @@ namespace NzbDrone.Core.Test.MediaFiles.MovieImport.Aggregation.Aggregators
|
|||||||
.Build();
|
.Build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ParsedMovieInfo GetParsedMovieInfo(Language language)
|
private ParsedMovieInfo GetParsedMovieInfo(List<Language> languages)
|
||||||
{
|
{
|
||||||
return new ParsedMovieInfo
|
return new ParsedMovieInfo
|
||||||
{
|
{
|
||||||
Languages = new List<Language> { language }
|
Languages = languages
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_return_default_if_no_info_is_known()
|
||||||
|
{
|
||||||
|
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(Language.English);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_return_file_language_when_only_file_info_is_known()
|
public void should_return_file_language_when_only_file_info_is_known()
|
||||||
{
|
{
|
||||||
_localMovie.FileMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.FileMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
|
|
||||||
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FileMovieInfo.Languages);
|
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FileMovieInfo.Languages);
|
||||||
}
|
}
|
||||||
@@ -43,8 +49,8 @@ namespace NzbDrone.Core.Test.MediaFiles.MovieImport.Aggregation.Aggregators
|
|||||||
[Test]
|
[Test]
|
||||||
public void should_return_folder_language_when_folder_info_is_known()
|
public void should_return_folder_language_when_folder_info_is_known()
|
||||||
{
|
{
|
||||||
_localMovie.FolderMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.FolderMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
_localMovie.FileMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.FileMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
|
|
||||||
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FolderMovieInfo.Languages);
|
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FolderMovieInfo.Languages);
|
||||||
}
|
}
|
||||||
@@ -52,9 +58,9 @@ namespace NzbDrone.Core.Test.MediaFiles.MovieImport.Aggregation.Aggregators
|
|||||||
[Test]
|
[Test]
|
||||||
public void should_return_download_client_item_language_when_download_client_item_info_is_known()
|
public void should_return_download_client_item_language_when_download_client_item_info_is_known()
|
||||||
{
|
{
|
||||||
_localMovie.DownloadClientMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.DownloadClientMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
_localMovie.FolderMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.FolderMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
_localMovie.FileMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.FileMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
|
|
||||||
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.DownloadClientMovieInfo.Languages);
|
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.DownloadClientMovieInfo.Languages);
|
||||||
}
|
}
|
||||||
@@ -62,11 +68,21 @@ namespace NzbDrone.Core.Test.MediaFiles.MovieImport.Aggregation.Aggregators
|
|||||||
[Test]
|
[Test]
|
||||||
public void should_return_file_language_when_file_language_is_higher_than_others()
|
public void should_return_file_language_when_file_language_is_higher_than_others()
|
||||||
{
|
{
|
||||||
_localMovie.DownloadClientMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.DownloadClientMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
_localMovie.FolderMovieInfo = GetParsedMovieInfo(Language.English);
|
_localMovie.FolderMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
_localMovie.FileMovieInfo = GetParsedMovieInfo(Language.French);
|
_localMovie.FileMovieInfo = GetParsedMovieInfo(new List<Language> { Language.French });
|
||||||
|
|
||||||
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FileMovieInfo.Languages);
|
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FileMovieInfo.Languages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_return_multi_language()
|
||||||
|
{
|
||||||
|
_localMovie.DownloadClientMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
|
_localMovie.FolderMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English, Language.German });
|
||||||
|
_localMovie.FileMovieInfo = GetParsedMovieInfo(new List<Language> { Language.English });
|
||||||
|
|
||||||
|
Subject.Aggregate(_localMovie, false).Languages.Should().Contain(_localMovie.FolderMovieInfo.Languages);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Core.Languages;
|
using NzbDrone.Core.Languages;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
|
|
||||||
@@ -22,15 +23,26 @@ namespace NzbDrone.Core.MediaFiles.MovieImport.Aggregation.Aggregators
|
|||||||
// between parsed languages the more preferred item will be used.
|
// between parsed languages the more preferred item will be used.
|
||||||
var languages = new List<Language>();
|
var languages = new List<Language>();
|
||||||
|
|
||||||
languages.AddRange(GetLanguage(localMovie.DownloadClientMovieInfo));
|
languages.AddRange(localMovie.DownloadClientMovieInfo?.Languages ?? new List<Language>());
|
||||||
languages.AddRange(GetLanguage(localMovie.FolderMovieInfo));
|
|
||||||
languages.AddRange(GetLanguage(localMovie.FileMovieInfo));
|
|
||||||
|
|
||||||
var language = new List<Language> { languages.FirstOrDefault(l => l != Language.English) ?? Language.English };
|
if (!languages.Any(l => l != Language.English))
|
||||||
|
{
|
||||||
|
languages.AddRange(localMovie.FolderMovieInfo?.Languages ?? new List<Language>());
|
||||||
|
}
|
||||||
|
|
||||||
_logger.Debug("Using language: {0}", language.First());
|
if (!languages.Any(l => l != Language.English))
|
||||||
|
{
|
||||||
|
languages.AddRange(localMovie.FileMovieInfo?.Languages ?? new List<Language>());
|
||||||
|
}
|
||||||
|
|
||||||
localMovie.Languages = language;
|
if (!languages.Any())
|
||||||
|
{
|
||||||
|
languages.Add(Language.English);
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger.Debug("Using languages: {0}", languages.Select(l => l.Name).ToList().Join(","));
|
||||||
|
|
||||||
|
localMovie.Languages = languages;
|
||||||
|
|
||||||
return localMovie;
|
return localMovie;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user