This commit is contained in:
2026-01-14 15:03:08 -08:00
parent 25c940351a
commit 0f726b11dc
2 changed files with 26 additions and 8 deletions

View File

@@ -233,7 +233,7 @@ def create_app():
@require_storage()
def search_files():
"""Search for files by name or tag."""
from API.folder import LocalLibrarySearchOptimizer
from API.folder import LocalLibrarySearchOptimizer, API_folder_store
query = request.args.get("q", "")
limit = request.args.get("limit", 100, type=int)
@@ -242,20 +242,26 @@ def create_app():
db_query = query if query and query != "*" else ""
try:
with LocalLibrarySearchOptimizer(STORAGE_PATH) as db:
results = db.search_by_name(db_query, limit)
tag_results = db.search_by_tag(db_query, limit)
all_results = {
with LocalLibrarySearchOptimizer(STORAGE_PATH) as search_db:
results = search_db.search_by_name(db_query, limit)
tag_results = search_db.search_by_tag(db_query, limit)
all_results_dict = {
r["hash"]: r
for r in (results + tag_results)
}
# Fetch tags for each result to support title extraction on client
with API_folder_store(STORAGE_PATH) as db:
for res in all_results_dict.values():
if res.get("file_path"):
res["tag"] = db.get_tags(Path(res["file_path"]))
return (
jsonify(
{
"query": query,
"count": len(all_results),
"files": list(all_results.values()),
"count": len(all_results_dict),
"files": list(all_results_dict.values()),
}
),
200,