diff options
| author | Cody Robibero <cody@robibe.ro> | 2026-07-05 16:20:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-05 16:20:45 -0400 |
| commit | efd3814a7e5b233fa70da1024157ac4b7aed1d4c (patch) | |
| tree | 26e0dcf0551f619740032836ee85d862976175a1 | |
| parent | b391cd5e9e347f6302636bf870468e5295b78c4d (diff) | |
| parent | 2528bc10326e4b842899b55ae2d023414f5fc53f (diff) | |
Merge pull request #17239 from theguymadmax/ratings-separator
Fix parental rating lookup for multi-rating entries
| -rw-r--r-- | Emby.Server.Implementations/Localization/LocalizationManager.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Localization/LocalizationManager.cs b/Emby.Server.Implementations/Localization/LocalizationManager.cs index 6971431155..98f629d31c 100644 --- a/Emby.Server.Implementations/Localization/LocalizationManager.cs +++ b/Emby.Server.Implementations/Localization/LocalizationManager.cs @@ -356,6 +356,27 @@ namespace Emby.Server.Implementations.Localization { ArgumentException.ThrowIfNullOrEmpty(rating); + // Some providers may list multiple ratings separated by '/' (e.g. "SE:15 / SE:15+ / SE:Från 15 år"). + // Try each one in order and use the first that resolves. + var ratingValues = rating.Split('/', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + + foreach (var ratingValue in ratingValues) + { + var score = GetSingleRatingScore(ratingValue, countryCode); + if (score is not null) + { + return score; + } + } + + return null; + } + + /// <summary> + /// Resolves a single rating value to a score. + /// </summary> + private ParentalRatingScore? GetSingleRatingScore(string rating, string? countryCode) + { // Handle unrated content if (_unratedValues.Contains(rating.AsSpan(), StringComparison.OrdinalIgnoreCase)) { |
