From b18d891a2b4f19b517aa401ef922c5f717d8217b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Thu, 16 Jan 2025 17:49:01 +0100 Subject: [PATCH] Default search sort by score so that non-prefix search is used internally --- CinemaJellyfin/CinemaFilterFolder.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/CinemaJellyfin/CinemaFilterFolder.cs b/CinemaJellyfin/CinemaFilterFolder.cs index 1d34dcf..5992a28 100644 --- a/CinemaJellyfin/CinemaFilterFolder.cs +++ b/CinemaJellyfin/CinemaFilterFolder.cs @@ -107,8 +107,8 @@ public abstract class CinemaFilterFolder : Folder ItemOrder sortDir; if (query.OrderBy.Count == 0) { - sortBy = FilterSortBy.Title; - sortDir = ItemOrder.Ascending; + sortBy = FilterSortBy.Score; + sortDir = ItemOrder.Descending; } else { @@ -117,7 +117,18 @@ public abstract class CinemaFilterFolder : Folder sortDir = sortDirJ == SortOrder.Ascending ? ItemOrder.Ascending : ItemOrder.Descending; } - FilterResponse? filterRes = Metadata.SearchAsync(query.SearchTerm ?? "", order: sortDir, sort: sortBy, type: ItemType, offset: offset, limit: limit).GetAwaiter().GetResult(); + string? expression = query.SearchTerm; + if (expression == null) + { + expression = query.NameStartsWith; + if (expression != null && query.OrderBy.Count == 0) + { + sortBy = FilterSortBy.Title; + sortDir = ItemOrder.Ascending; + } + } + + FilterResponse? filterRes = Metadata.SearchAsync(expression ?? "", order: sortDir, sort: sortBy, type: ItemType, offset: offset, limit: limit).GetAwaiter().GetResult(); if (filterRes != null && filterRes.hits != null && filterRes.hits.hits != null) { if (filterRes.hits.total != null)