diff options
| author | salmonik <raisersoft@proton.me> | 2026-04-29 14:47:32 +0200 |
|---|---|---|
| committer | salmonik <raisersoft@proton.me> | 2026-04-29 14:47:32 +0200 |
| commit | 8a4352ebb5e15ff4be82a9b4e111c1535aab349e (patch) | |
| tree | 2c4d5b4b65bdc8308b35c411cffa7f17b1bfeb4d /cogs/utils/file_search.py | |
| parent | fix: fallback to plaintext if no json is provided for assistant.py (diff) | |
| parent | proper context for settings (diff) | |
| download | senator-sperma-8a4352ebb5e15ff4be82a9b4e111c1535aab349e.tar.gz senator-sperma-8a4352ebb5e15ff4be82a9b4e111c1535aab349e.zip | |
Merge branch 'dev'
Signed-off-by: salmonik <raisersoft@proton.me>
Diffstat (limited to 'cogs/utils/file_search.py')
| -rw-r--r-- | cogs/utils/file_search.py | 18 |
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})" |
