Fixed: Multi language release being rejected when indexer profile is setup for original and any other language (#6311)

pull/5589/head
Robin Dadswell 3 years ago committed by GitHub
parent 543f2e7ddc
commit 5f229b78be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -27,6 +27,8 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests
private ParsedMovieInfo _translationTitleInfo;
private ParsedMovieInfo _umlautInfo;
private ParsedMovieInfo _umlautAltInfo;
private ParsedMovieInfo _multiLanguageInfo;
private ParsedMovieInfo _multiLanguageWithOriginalInfo;
private MovieSearchCriteria _movieSearchCriteria;
[SetUp]
@ -97,6 +99,18 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests
Year = _movie.Year
};
_multiLanguageInfo = new ParsedMovieInfo
{
MovieTitle = _movie.Title,
Languages = new List<Language> { Language.Original, Language.French }
};
_multiLanguageWithOriginalInfo = new ParsedMovieInfo
{
MovieTitle = _movie.Title,
Languages = new List<Language> { Language.Original, Language.French, Language.English }
};
_movieSearchCriteria = new MovieSearchCriteria
{
Movie = _movie
@ -180,5 +194,20 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests
Subject.Map(_umlautInfo, "", _movieSearchCriteria).Movie.Should().Be(_movieSearchCriteria.Movie);
Subject.Map(_umlautAltInfo, "", _movieSearchCriteria).Movie.Should().Be(_movieSearchCriteria.Movie);
}
[Test]
public void should_convert_original()
{
Subject.Map(_multiLanguageInfo, "", _movieSearchCriteria).RemoteMovie.ParsedMovieInfo.Languages.Should().Contain(Language.English);
Subject.Map(_multiLanguageInfo, "", _movieSearchCriteria).RemoteMovie.ParsedMovieInfo.Languages.Should().Contain(Language.French);
}
[Test]
public void should_remove_original_as_already_exists()
{
Subject.Map(_multiLanguageWithOriginalInfo, "", _movieSearchCriteria).RemoteMovie.ParsedMovieInfo.Languages.Should().Contain(Language.English);
Subject.Map(_multiLanguageWithOriginalInfo, "", _movieSearchCriteria).RemoteMovie.ParsedMovieInfo.Languages.Should().Contain(Language.French);
Subject.Map(_multiLanguageWithOriginalInfo, "", _movieSearchCriteria).RemoteMovie.ParsedMovieInfo.Languages.Should().NotContain(Language.Original);
}
}
}

@ -139,6 +139,15 @@ namespace NzbDrone.Core.Parser
_logger.Debug("Language couldn't be parsed from release, fallback to movie original language: {0}", result.Movie.OriginalLanguage.Name);
}
if (parsedMovieInfo.Languages.Contains(Language.Original))
{
parsedMovieInfo.Languages.Remove(Language.Original);
if (!parsedMovieInfo.Languages.Contains(result.Movie.OriginalLanguage))
{
parsedMovieInfo.Languages.Add(result.Movie.OriginalLanguage);
}
}
result.RemoteMovie.ParsedMovieInfo = parsedMovieInfo;
return result;

Loading…
Cancel
Save