aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2025-09-25 03:15:10 +0300
committerGitHub <noreply@github.com>2025-09-24 18:15:10 -0600
commit2aa39226c6f47a7d985bd1f5ddc887387650daad (patch)
tree1ad2de61e75ecea23ab1204d921f50c598211e91 /MediaBrowser.Controller/Entities
parent60fbd39bb9e4043c23ebd836a5d6794edcfad472 (diff)
Apply filter server side (#14856)v10.11.0-rc6
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs5
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs17
2 files changed, 21 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 11fdf1fe4..1abb394b5 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -973,7 +973,10 @@ namespace MediaBrowser.Controller.Entities
{
DisplayAlbumFolders = query.DisplayAlbumFolders,
Limit = query.Limit,
- StartIndex = query.StartIndex
+ StartIndex = query.StartIndex,
+ NameStartsWith = query.NameStartsWith,
+ NameStartsWithOrGreater = query.NameStartsWithOrGreater,
+ NameLessThan = query.NameLessThan
};
items = GetChildren(user, true, out totalItemCount, childQuery).Where(filter);
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index 62eb43aa5..4f9e9261b 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -472,6 +472,23 @@ namespace MediaBrowser.Controller.Entities
public static bool Filter(BaseItem item, User user, InternalItemsQuery query, IUserDataManager userDataManager, ILibraryManager libraryManager)
{
+ if (!string.IsNullOrEmpty(query.NameStartsWith) && !item.SortName.StartsWith(query.NameStartsWith, StringComparison.InvariantCultureIgnoreCase))
+ {
+ return false;
+ }
+
+#pragma warning disable CA1309 // Use ordinal string comparison
+ if (!string.IsNullOrEmpty(query.NameStartsWithOrGreater) && string.Compare(query.NameStartsWithOrGreater, item.SortName, StringComparison.InvariantCultureIgnoreCase) == 1)
+ {
+ return false;
+ }
+
+ if (!string.IsNullOrEmpty(query.NameLessThan) && string.Compare(query.NameLessThan, item.SortName, StringComparison.InvariantCultureIgnoreCase) != 1)
+#pragma warning restore CA1309 // Use ordinal string comparison
+ {
+ return false;
+ }
+
if (query.MediaTypes.Length > 0 && !query.MediaTypes.Contains(item.MediaType))
{
return false;