From f5aec4e5c110acbab87c3bfc16be152f3564509b Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Mon, 14 Jul 2025 01:12:27 +0300 Subject: [PATCH] fix: fix search result sorting based if there is exact match or starts with (closes #152) --- src/ahriman/web/views/v1/service/search.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ahriman/web/views/v1/service/search.py b/src/ahriman/web/views/v1/service/search.py index 3ca204c3..5d0bbe34 100644 --- a/src/ahriman/web/views/v1/service/search.py +++ b/src/ahriman/web/views/v1/service/search.py @@ -70,7 +70,11 @@ class SearchView(BaseView): if not packages: raise HTTPNotFound(reason=f"No packages found for terms: {search}") - comparator: Callable[[AURPackage], str] = lambda item: item.package_base + comparator: Callable[[AURPackage], tuple[bool, bool, str]] = lambda item: ( + item.package_base not in search, # inverted because False < True + not any(item.package_base.startswith(term) for term in search), # same as above + item.package_base, + ) response = [ { "package": package.package_base,