同步更新:重构路由、服务模块,更新前端构建

This commit is contained in:
2025-12-14 21:47:08 +08:00
parent e01a7b5235
commit a346509a5f
87 changed files with 9186 additions and 7826 deletions

70
services/task_batches.py Normal file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import annotations
import database
import email_service
from services.runtime import get_logger
from services.state import safe_batch_append_result
def _get_batch_id_from_source(source: str):
"""从source中提取批次IDsource格式: user_scheduled:batch_xxx"""
if not source:
return None
if source.startswith("user_scheduled:batch_"):
return source.split(":", 1)[1]
return None
def _send_batch_task_email_if_configured(batch_info: dict):
"""批次任务:当所有账号完成后发送打包邮件(在锁外调用)。"""
logger = get_logger()
try:
batch_user_id = batch_info.get("user_id")
if not batch_user_id:
return
user_info = database.get_user_by_id(batch_user_id)
if not user_info or not user_info.get("email"):
return
if not database.get_user_email_notify(batch_user_id):
return
if not batch_info.get("screenshots"):
return
email_service.send_batch_task_complete_email_async(
user_id=batch_user_id,
email=user_info["email"],
username=user_info["username"],
schedule_name=batch_info.get("schedule_name", "未命名任务"),
browse_type=batch_info.get("browse_type", "应读"),
screenshots=batch_info["screenshots"],
)
logger.info(f"[批次邮件] 已发送打包邮件,包含 {len(batch_info['screenshots'])} 条记录")
except Exception as e:
logger.warning(f"[批次邮件] 发送失败: {e}")
def _batch_task_record_result(
batch_id: str,
account_name: str,
screenshot_path: str,
total_items: int,
total_attachments: int,
):
"""批次任务:记录单账号结果,达到完成条件时触发邮件并回收内存。"""
logger = get_logger()
batch_info = safe_batch_append_result(
batch_id,
{
"account_name": account_name,
"path": screenshot_path,
"items": total_items,
"attachments": total_attachments,
},
)
if batch_info:
logger.info(
f"[批次邮件] 批次 {batch_id} 已完成: {batch_info.get('completed')}/{batch_info.get('total_accounts')},准备发送邮件"
)
_send_batch_task_email_if_configured(batch_info)