From 39049a726e1a88e8acf1d8cc5c217bc8d86be9ae Mon Sep 17 00:00:00 2001 From: TheMelmacian <76712303+TheMelmacian@users.noreply.github.com> Date: Tue, 12 May 2026 01:47:07 +0200 Subject: move language filters from QueryFiltersLegacy to QueryFilters --- Jellyfin.Api/Controllers/FilterController.cs | 37 +++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'Jellyfin.Api/Controllers/FilterController.cs') diff --git a/Jellyfin.Api/Controllers/FilterController.cs b/Jellyfin.Api/Controllers/FilterController.cs index 2f53784db1..740423ef04 100644 --- a/Jellyfin.Api/Controllers/FilterController.cs +++ b/Jellyfin.Api/Controllers/FilterController.cs @@ -8,6 +8,8 @@ using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Querying; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; @@ -24,16 +26,19 @@ public class FilterController : BaseJellyfinApiController { private readonly ILibraryManager _libraryManager; private readonly IUserManager _userManager; + private readonly ILocalizationManager _localization; /// /// Initializes a new instance of the class. /// /// Instance of the interface. /// Instance of the interface. - public FilterController(ILibraryManager libraryManager, IUserManager userManager) + /// Instance of the interface. + public FilterController(ILibraryManager libraryManager, IUserManager userManager, ILocalizationManager localization) { _libraryManager = libraryManager; _userManager = userManager; + _localization = localization; } /// @@ -183,6 +188,36 @@ public class FilterController : BaseJellyfinApiController }).ToArray(); } + if (includeItemTypes.Contains(BaseItemKind.Movie) || includeItemTypes.Contains(BaseItemKind.Series)) + { + filters.AudioLanguages = _libraryManager + .GetMediaStreamLanguages(MediaStreamType.Audio) + .Select(language => + { + var culture = _localization.FindLanguageInfo(language); + return new NameValuePair + { + Name = culture != null ? $"{culture.DisplayName} ({language})" : language, + Value = language + }; + }) + .OrderBy(l => l.Name) + .ToArray(); + filters.SubtitleLanguages = _libraryManager + .GetMediaStreamLanguages(MediaStreamType.Subtitle) + .Select(language => + { + var culture = _localization.FindLanguageInfo(language); + return new NameValuePair + { + Name = culture != null ? $"{culture.DisplayName} ({language})" : language, + Value = language + }; + }) + .OrderBy(l => l.Name) + .ToArray(); + } + return filters; } } -- cgit v1.2.3 From fae4950ac2b5918081198ee5f876dd82ca81ae5d Mon Sep 17 00:00:00 2001 From: TheMelmacian <76712303+TheMelmacian@users.noreply.github.com> Date: Fri, 15 May 2026 11:12:08 +0200 Subject: Apply suggestions from code review Co-authored-by: Bond-009 --- Jellyfin.Api/Controllers/FilterController.cs | 4 ++-- MediaBrowser.Model/Querying/QueryFilters.cs | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'Jellyfin.Api/Controllers/FilterController.cs') diff --git a/Jellyfin.Api/Controllers/FilterController.cs b/Jellyfin.Api/Controllers/FilterController.cs index 740423ef04..cfc8be28ae 100644 --- a/Jellyfin.Api/Controllers/FilterController.cs +++ b/Jellyfin.Api/Controllers/FilterController.cs @@ -197,7 +197,7 @@ public class FilterController : BaseJellyfinApiController var culture = _localization.FindLanguageInfo(language); return new NameValuePair { - Name = culture != null ? $"{culture.DisplayName} ({language})" : language, + Name = culture is null ? language : $"{culture.DisplayName} ({language})", Value = language }; }) @@ -210,7 +210,7 @@ public class FilterController : BaseJellyfinApiController var culture = _localization.FindLanguageInfo(language); return new NameValuePair { - Name = culture != null ? $"{culture.DisplayName} ({language})" : language, + Name = culture is null ? language : $"{culture.DisplayName} ({language})", Value = language }; }) diff --git a/MediaBrowser.Model/Querying/QueryFilters.cs b/MediaBrowser.Model/Querying/QueryFilters.cs index b877af71c6..095f460923 100644 --- a/MediaBrowser.Model/Querying/QueryFilters.cs +++ b/MediaBrowser.Model/Querying/QueryFilters.cs @@ -2,6 +2,7 @@ #pragma warning disable CS1591 using System; +using System.Collections.Generic; using MediaBrowser.Model.Dto; namespace MediaBrowser.Model.Querying @@ -16,12 +17,12 @@ namespace MediaBrowser.Model.Querying SubtitleLanguages = Array.Empty(); } - public NameGuidPair[] Genres { get; set; } + public IReadOnlyList Genres { get; set; } - public string[] Tags { get; set; } + public IReadOnlyList Tags { get; set; } - public NameValuePair[] AudioLanguages { get; set; } + public IReadOnlyList AudioLanguages { get; set; } - public NameValuePair[] SubtitleLanguages { get; set; } + public IReadOnlyList SubtitleLanguages { get; set; } } } -- cgit v1.2.3