feat: add admin dashboard, pipeline service, lightbox, and update dependencies
This commit is contained in:
+13
-9
@@ -2,21 +2,20 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import logging
|
||||
import shutil
|
||||
from datetime import date, datetime, timezone
|
||||
from pathlib import Path
|
||||
from datetime import date
|
||||
|
||||
from sqlalchemy import delete, select, text
|
||||
from sqlalchemy import select, text
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.models import (
|
||||
CrawlLog,
|
||||
DataDeleteJob,
|
||||
Paper,
|
||||
TaskLock,
|
||||
)
|
||||
from app.utils import PAPERS_DIR, TMP_DIR
|
||||
from app.utils import PAPERS_DIR, TMP_DIR, utc_now
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -39,7 +38,7 @@ def cleanup_tmp(max_age_hours: int = _MAX_TMP_AGE_HOURS) -> dict:
|
||||
if not TMP_DIR.exists():
|
||||
return {"scanned": 0, "removed": 0, "errors": []}
|
||||
|
||||
now = datetime.now(timezone.utc)
|
||||
now = utc_now()
|
||||
cutoff = now.timestamp() - (max_age_hours * 3600)
|
||||
scanned = 0
|
||||
removed = 0
|
||||
@@ -96,7 +95,7 @@ async def delete_papers_by_date_range(
|
||||
Returns:
|
||||
删除结果统计
|
||||
"""
|
||||
now = datetime.now(timezone.utc)
|
||||
now = utc_now()
|
||||
|
||||
# 查询目标论文
|
||||
papers = (
|
||||
@@ -195,7 +194,7 @@ async def delete_papers_by_date_range(
|
||||
|
||||
job.status = job_status
|
||||
job.paper_count = deleted
|
||||
job.completed_at = datetime.now(timezone.utc)
|
||||
job.completed_at = utc_now()
|
||||
if job_error:
|
||||
job.error = job_error[:4000]
|
||||
db.commit()
|
||||
@@ -205,9 +204,14 @@ async def delete_papers_by_date_range(
|
||||
task="delete",
|
||||
status=job_status,
|
||||
started_at=now,
|
||||
completed_at=datetime.now(timezone.utc),
|
||||
completed_at=utc_now(),
|
||||
papers_found=total,
|
||||
papers_new=deleted,
|
||||
details_json=json.dumps({
|
||||
"total_before": total,
|
||||
"deleted": deleted,
|
||||
"failed": len(failed_items),
|
||||
}, ensure_ascii=False),
|
||||
error=job_error,
|
||||
)
|
||||
db.add(log_entry)
|
||||
|
||||
Reference in New Issue
Block a user