Support age in LocalizationManager.GetRatingLevel (#11367)

pull/11378/head
Niels van Velzen 2 weeks ago committed by GitHub
parent 80fac82c2c
commit 82e5f99f83
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -278,6 +278,13 @@ namespace Emby.Server.Implementations.Localization
return null;
}
// Convert integers directly
// This may override some of the locale specific age ratings (but those always map to the same age)
if (int.TryParse(rating, out var ratingAge))
{
return ratingAge;
}
// Fairly common for some users to have "Rated R" in their rating field
rating = rating.Replace("Rated :", string.Empty, StringComparison.OrdinalIgnoreCase);
rating = rating.Replace("Rated ", string.Empty, StringComparison.OrdinalIgnoreCase);

@ -127,6 +127,22 @@ namespace Jellyfin.Server.Implementations.Tests.Localization
Assert.Equal(expectedLevel, level!);
}
[Theory]
[InlineData("0", 0)]
[InlineData("1", 1)]
[InlineData("6", 6)]
[InlineData("12", 12)]
[InlineData("42", 42)]
[InlineData("9999", 9999)]
public async Task GetRatingLevel_GivenValidAge_Success(string value, int expectedLevel)
{
var localizationManager = Setup(new ServerConfiguration { MetadataCountryCode = "nl" });
await localizationManager.LoadAll();
var level = localizationManager.GetRatingLevel(value);
Assert.NotNull(level);
Assert.Equal(expectedLevel, level);
}
[Fact]
public async Task GetRatingLevel_GivenUnratedString_Success()
{

Loading…
Cancel
Save