feat: 完成账号目录slug工具

- 新增 app/config.py,生成稳定账号 slug 并创建 user-data-dir

- db 账号创建复用统一 slug 规则

- 新增 config 单元测试覆盖 slug 和目录创建

- 更新任务看板、API 合约、当前状态和进度记录
This commit is contained in:
chengma
2026-06-27 09:21:33 +08:00
parent aba272dd21
commit d3afe69c10
7 changed files with 123 additions and 18 deletions
+2 -9
View File
@@ -2,10 +2,8 @@
from __future__ import annotations
import hashlib
import json
import os
import re
import sqlite3
import uuid
from contextlib import contextmanager
@@ -14,6 +12,7 @@ from datetime import datetime
from typing import Iterable, Optional
from . import appconfig
from .config import make_slug
DEFAULT_BUSY_TIMEOUT_MS = 5000
@@ -220,12 +219,6 @@ def _validate_fields(fields, allowed):
raise DbError(f"不支持更新字段: {', '.join(unknown)}")
def _slug_from_alias(alias: str) -> str:
base = re.sub(r"[^a-z0-9_]+", "_", alias.lower()).strip("_")
suffix = hashlib.sha1(alias.encode("utf-8")).hexdigest()[:8]
return f"{base}_{suffix}" if base else f"account_{suffix}"
def _row_key(batch_id, source_file_abs, source_sheet, source_row) -> str:
return f"{batch_id}:{source_file_abs}:{source_sheet}:{source_row}"
@@ -330,7 +323,7 @@ def add_account(
path=None,
conn=None,
):
slug = slug or _slug_from_alias(alias)
slug = slug or make_slug(alias)
user_data_dir = user_data_dir or os.path.join("chrome_user_data_dir", slug)
now = _now()
with _connection(conn, path) as database: