From 750653361f3c4fa8312082e72657f970a244ebe7 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sun, 6 Feb 2022 16:11:54 -0800 Subject: [PATCH] fix: remove /packages search count limit ...took this opportunity to use the new options.max_search_results tunable for a PP upper-bound. Signed-off-by: Kevin Morris --- aurweb/packages/search.py | 11 +++-------- aurweb/routers/packages.py | 8 +++++--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/aurweb/packages/search.py b/aurweb/packages/search.py index 01b0e154..b6b36c79 100644 --- a/aurweb/packages/search.py +++ b/aurweb/packages/search.py @@ -222,14 +222,9 @@ class PackageSearch: ordering = self.FULL_SORT_ORDER.get(ordering) return callback(ordering) - def count(self, limit: int) -> int: - """ - Return internal query's count up to `limit`. - - :param limit: Upper bound - :return: Database count up to `limit` - """ - return self.query.limit(limit).count() + def count(self) -> int: + """ Return internal query's count. """ + return self.query.count() def results(self) -> orm.Query: """ Return internal query. """ diff --git a/aurweb/routers/packages.py b/aurweb/routers/packages.py index 79c6a404..f6bf116d 100644 --- a/aurweb/routers/packages.py +++ b/aurweb/routers/packages.py @@ -31,7 +31,10 @@ async def packages_get(request: Request, context: Dict[str, Any], request.query_params.get("O", defaults.O), request.query_params.get("PP", defaults.PP)) context["O"] = offset - context["PP"] = per_page + + # Limit PP to options.max_search_results + max_search_results = aurweb.config.getint("options", "max_search_results") + context["PP"] = per_page = min(per_page, max_search_results) # Query search by. search_by = context["SeB"] = request.query_params.get("SeB", "nd") @@ -56,8 +59,7 @@ async def packages_get(request: Request, context: Dict[str, Any], # Collect search result count here; we've applied our keywords. # Including more query operations below, like ordering, will # increase the amount of time required to collect a count. - limit = config.getint("options", "max_search_results") - num_packages = search.count(limit) + num_packages = search.count() flagged = request.query_params.get("outdated", None) if flagged: