From 5675dfd20b24f1e0eef06b11d9ec41a894d3a5bf Mon Sep 17 00:00:00 2001 From: salmonik Date: Tue, 28 Apr 2026 20:05:36 +0200 Subject: multitude of changes. but primarly, use db for all data. Signed-off-by: salmonik --- cogs/utils/file_search.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'cogs/utils/file_search.py') diff --git a/cogs/utils/file_search.py b/cogs/utils/file_search.py index 8111216..788f50c 100644 --- a/cogs/utils/file_search.py +++ b/cogs/utils/file_search.py @@ -34,10 +34,22 @@ class UniversalSearcher: query = query.strip() logger.info(f"Starting copyparty search for query: '{query}'") - # Build the query with optional extension filtering - name_query = f'name like "*{query}*"' + tokens = query.split() + if not tokens: + return [] + + token_queries = [] + for token in tokens: + path_query = f'path like "*{token}*"' + name_query = f'name like "*{token}*"' + token_queries.append(f"({path_query} or {name_query})") + + if len(token_queries) == 1: + name_query = token_queries[0] + else: + name_query = " and ".join(token_queries) + if file_extensions: - # Create extension filters using copyparty's .ext$ syntax ext_filters = [f"name like \"*.{ext.lower()}\"" for ext in file_extensions] ext_query = " or ".join(ext_filters) query = f"{name_query} and ({ext_query})" -- cgit v1.2.3