j
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user