所有站点 with_retry 在最后一次重试失败、reset 之前自动截图, 保存到 logs/screenshots/。网页站点走 Playwright page.screenshot(), 安能走 CDP Page.captureScreenshot。截图失败绝不阻塞任务流程。 - paths.py: 新增 SCREENSHOT_DIR (BASE_DIR/logs/screenshots/) - runtime.py: 新增 capture_error_screenshot() 工具函数 - .gitignore: 新增 logs/ 忽略规则 Co-Authored-By: Claude <noreply@anthropic.com>
24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
# paths.py
|
||
# 统一的路径锚点:所有路径都以本项目所在目录为基准,避免依赖运行时的工作目录(cwd)。
|
||
# 这样无论从哪个目录启动脚本(IDE / 命令行 / 计划任务 / 双击),
|
||
# 下载目录与配置文件都能稳定定位,不会出现“文件落到别处”或“读不到密码”的隐蔽故障。
|
||
|
||
import os
|
||
|
||
# 项目根目录(以本文件所在位置为基准,与从哪个目录启动脚本无关)
|
||
# __file__ = <root>/inbound_verify/paths.py → 上两级 = 项目根
|
||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
|
||
# 统一的下载 / 输出目录
|
||
DOWNLOAD_DIR = os.path.join(BASE_DIR, "downloads")
|
||
OUTPUT_DIR = os.path.join(BASE_DIR, "output")
|
||
|
||
# 统一的配置文件路径(注意:config.yaml 需与本项目脚本放在同一目录下)
|
||
CONFIG_PATH = os.path.join(BASE_DIR, "config.yaml")
|
||
|
||
# 状态存储(SQLite,阶段0:心跳 / 登录态 / 数据态持久化,重启不丢)
|
||
STATE_DB_PATH = os.path.join(BASE_DIR, "state", "state.db")
|
||
|
||
# 错误截图目录(下载流程失败时自动截取,供问题排查)
|
||
SCREENSHOT_DIR = os.path.join(BASE_DIR, "logs", "screenshots")
|