aboutsummaryrefslogtreecommitdiffstats
path: root/cogs/utils/file_search.py
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-04-28 20:05:36 +0200
committersalmonik <raisersoft@proton.me>2026-04-28 20:05:36 +0200
commit5675dfd20b24f1e0eef06b11d9ec41a894d3a5bf (patch)
treecaad1669db6fce506dd0494aeaf2a43f7e291679 /cogs/utils/file_search.py
parentbetter UX for web.py (diff)
downloadsenator-sperma-5675dfd20b24f1e0eef06b11d9ec41a894d3a5bf.tar.gz
senator-sperma-5675dfd20b24f1e0eef06b11d9ec41a894d3a5bf.zip
multitude of changes.
but primarly, use db for all data. Signed-off-by: salmonik <raisersoft@proton.me>
Diffstat (limited to '')
-rw-r--r--cogs/utils/file_search.py18
1 files changed, 15 insertions, 3 deletions
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:
34 query = query.strip() 34 query = query.strip()
35 logger.info(f"Starting copyparty search for query: '{query}'") 35 logger.info(f"Starting copyparty search for query: '{query}'")
36 36
37 # Build the query with optional extension filtering 37 tokens = query.split()
38 name_query = f'name like "*{query}*"' 38 if not tokens:
39 return []
40
41 token_queries = []
42 for token in tokens:
43 path_query = f'path like "*{token}*"'
44 name_query = f'name like "*{token}*"'
45 token_queries.append(f"({path_query} or {name_query})")
46
47 if len(token_queries) == 1:
48 name_query = token_queries[0]
49 else:
50 name_query = " and ".join(token_queries)
51
39 if file_extensions: 52 if file_extensions:
40 # Create extension filters using copyparty's .ext$ syntax
41 ext_filters = [f"name like \"*.{ext.lower()}\"" for ext in file_extensions] 53 ext_filters = [f"name like \"*.{ext.lower()}\"" for ext in file_extensions]
42 ext_query = " or ".join(ext_filters) 54 ext_query = " or ".join(ext_filters)
43 query = f"{name_query} and ({ext_query})" 55 query = f"{name_query} and ({ext_query})"