huy
This commit is contained in:
@@ -75,6 +75,60 @@ class _WorkerLogger:
|
||||
pass
|
||||
|
||||
|
||||
def _truncate_worker_text(value: Any, max_len: int = 120) -> str:
|
||||
text = str(value or "").strip()
|
||||
if len(text) <= max_len:
|
||||
return text
|
||||
if max_len <= 3:
|
||||
return text[:max_len]
|
||||
return f"{text[:max_len - 3].rstrip()}..."
|
||||
|
||||
|
||||
def _summarize_worker_result(item: Dict[str, Any]) -> str:
|
||||
title = (
|
||||
item.get("title")
|
||||
or item.get("name")
|
||||
or item.get("path")
|
||||
or item.get("url")
|
||||
or item.get("hash")
|
||||
or "Result"
|
||||
)
|
||||
details: list[str] = []
|
||||
|
||||
store_val = str(item.get("store") or item.get("source") or "").strip()
|
||||
if store_val:
|
||||
details.append(store_val)
|
||||
|
||||
ext_val = str(item.get("ext") or item.get("mime") or "").strip()
|
||||
if ext_val:
|
||||
details.append(ext_val)
|
||||
|
||||
hash_val = str(
|
||||
item.get("hash") or item.get("file_hash") or item.get("hash_hex") or ""
|
||||
).strip()
|
||||
if hash_val:
|
||||
details.append(hash_val[:12])
|
||||
|
||||
suffix = f" [{' | '.join(details)}]" if details else ""
|
||||
return f"- {_truncate_worker_text(title)}{suffix}"
|
||||
|
||||
|
||||
def _summarize_worker_results(results: Sequence[Dict[str, Any]], preview_limit: int = 8) -> str:
|
||||
count = len(results)
|
||||
lines = [f"{count} result(s)"]
|
||||
if count <= 0:
|
||||
return lines[0]
|
||||
|
||||
for item in results[:preview_limit]:
|
||||
lines.append(_summarize_worker_result(item))
|
||||
|
||||
remaining = count - min(count, preview_limit)
|
||||
if remaining > 0:
|
||||
lines.append(f"... {remaining} more")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
class search_file(Cmdlet):
|
||||
"""Class-based search-file cmdlet for searching storage backends."""
|
||||
|
||||
@@ -1127,7 +1181,7 @@ class search_file(Cmdlet):
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
append_worker_stdout(worker_id, json.dumps([], indent=2))
|
||||
append_worker_stdout(worker_id, _summarize_worker_results([]))
|
||||
update_worker(worker_id, status="completed")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -1195,7 +1249,7 @@ class search_file(Cmdlet):
|
||||
ctx.set_current_stage_table(table)
|
||||
|
||||
try:
|
||||
append_worker_stdout(worker_id, json.dumps(results_list, indent=2))
|
||||
append_worker_stdout(worker_id, _summarize_worker_results(results_list))
|
||||
update_worker(worker_id, status="completed")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -1498,7 +1552,7 @@ class search_file(Cmdlet):
|
||||
if not results:
|
||||
log(f"No results found for query: {query}", file=sys.stderr)
|
||||
try:
|
||||
append_worker_stdout(worker_id, json.dumps([], indent=2))
|
||||
append_worker_stdout(worker_id, _summarize_worker_results([]))
|
||||
update_worker(worker_id, status="completed")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -1534,7 +1588,7 @@ class search_file(Cmdlet):
|
||||
ctx.set_current_stage_table(table)
|
||||
|
||||
try:
|
||||
append_worker_stdout(worker_id, json.dumps(results_list, indent=2))
|
||||
append_worker_stdout(worker_id, _summarize_worker_results(results_list))
|
||||
update_worker(worker_id, status="completed")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -2034,8 +2088,7 @@ class search_file(Cmdlet):
|
||||
ctx.set_last_result_table(table, results_list)
|
||||
db.append_worker_stdout(
|
||||
worker_id,
|
||||
json.dumps(results_list,
|
||||
indent=2)
|
||||
_summarize_worker_results(results_list)
|
||||
)
|
||||
db.update_worker_status(worker_id, "completed")
|
||||
return 0
|
||||
@@ -2047,7 +2100,7 @@ class search_file(Cmdlet):
|
||||
ctx.set_last_result_table_preserve_history(table, [])
|
||||
except Exception:
|
||||
pass
|
||||
db.append_worker_stdout(worker_id, json.dumps([], indent=2))
|
||||
db.append_worker_stdout(worker_id, _summarize_worker_results([]))
|
||||
db.update_worker_status(worker_id, "completed")
|
||||
return 0
|
||||
|
||||
@@ -2259,8 +2312,7 @@ class search_file(Cmdlet):
|
||||
ctx.set_last_result_table(table, results_list)
|
||||
db.append_worker_stdout(
|
||||
worker_id,
|
||||
json.dumps(results_list,
|
||||
indent=2)
|
||||
_summarize_worker_results(results_list)
|
||||
)
|
||||
else:
|
||||
log("No results found", file=sys.stderr)
|
||||
@@ -2270,7 +2322,7 @@ class search_file(Cmdlet):
|
||||
ctx.set_last_result_table_preserve_history(table, [])
|
||||
except Exception:
|
||||
pass
|
||||
db.append_worker_stdout(worker_id, json.dumps([], indent=2))
|
||||
db.append_worker_stdout(worker_id, _summarize_worker_results([]))
|
||||
|
||||
db.update_worker_status(worker_id, "completed")
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user