feat: overhaul UI styling, improve templates, enhance services and tests

This commit is contained in:
2026-06-06 00:38:56 +08:00
parent f7f1a4c0cb
commit 904eec392e
38 changed files with 1471 additions and 795 deletions
+21 -5
View File
@@ -61,7 +61,9 @@ def cleanup_tmp(max_age_hours: int = _MAX_TMP_AGE_HOURS) -> dict:
errors.append(err_msg)
logger.warning("Failed to clean tmp dir %s: %s", entry.name, exc)
logger.info("Tmp cleanup: scanned=%d removed=%d errors=%d", scanned, removed, len(errors))
logger.info(
"Tmp cleanup: scanned=%d removed=%d errors=%d", scanned, removed, len(errors)
)
return {"scanned": scanned, "removed": removed, "errors": errors}
@@ -109,7 +111,12 @@ async def delete_papers_by_date_range(
)
total = len(papers)
logger.info("Delete papers by date range: %s ~ %s, found %d papers", date_start, date_end, total)
logger.info(
"Delete papers by date range: %s ~ %s, found %d papers",
date_start,
date_end,
total,
)
# 创建 delete job 记录
job = DataDeleteJob(
@@ -139,9 +146,12 @@ async def delete_papers_by_date_range(
# 1.5 Phase 5: 从 ChromaDB 删除语义索引
try:
from app.services.embedder import delete_paper
delete_paper(arxiv_id)
except Exception:
logger.warning("Failed to delete %s from ChromaDB", arxiv_id, exc_info=True)
logger.warning(
"Failed to delete %s from ChromaDB", arxiv_id, exc_info=True
)
# 2. 删除本地文件 data/papers/{arxiv_id}/
paper_dir = PAPERS_DIR / arxiv_id
@@ -179,7 +189,9 @@ async def delete_papers_by_date_range(
job_status = "success"
if failed_items:
job_status = "failed" if deleted == 0 else "success"
job_error = "; ".join(f"{f['arxiv_id']}: {f['error']}" for f in failed_items[:20])
job_error = "; ".join(
f"{f['arxiv_id']}: {f['error']}" for f in failed_items[:20]
)
job.status = job_status
job.paper_count = deleted
@@ -210,6 +222,10 @@ async def delete_papers_by_date_range(
}
logger.info(
"Delete job completed: date_range=%s~%s total=%d deleted=%d failed=%d",
date_start, date_end, total, deleted, len(failed_items),
date_start,
date_end,
total,
deleted,
len(failed_items),
)
return result