- 新增 state_store.py:SQLite 状态存储(site_status 表:登录态/数据态/时间戳), UPSERT 保留字段,重启不丢 - paths.py:加 STATE_DB_PATH(state/state.db) - main_router:提取 probe_site_login / probe_data_file;菜单循环改为 input 后台线程 + 主线程心跳轮询(满足 Playwright sync 线程安全); 每 30s 探测各站登录态 + 数据文件写库,登录态变化时提示;新增菜单 [12] 站点状态盘 - .gitignore:忽略 state/ 为后续 FastAPI 化与 Web 前端提供状态地基。 Co-Authored-By: Claude <noreply@anthropic.com>
19 lines
906 B
Python
19 lines
906 B
Python
# paths.py
|
||
# 统一的路径锚点:所有路径都以本项目所在目录为基准,避免依赖运行时的工作目录(cwd)。
|
||
# 这样无论从哪个目录启动脚本(IDE / 命令行 / 计划任务 / 双击),
|
||
# 下载目录与配置文件都能稳定定位,不会出现“文件落到别处”或“读不到密码”的隐蔽故障。
|
||
|
||
import os
|
||
|
||
# 项目根目录(以本文件所在位置为基准,与从哪个目录启动脚本无关)
|
||
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||
|
||
# 统一的下载 / 输出目录
|
||
DOWNLOAD_DIR = os.path.join(BASE_DIR, "downloads")
|
||
|
||
# 统一的配置文件路径(注意:config.yaml 需与本项目脚本放在同一目录下)
|
||
CONFIG_PATH = os.path.join(BASE_DIR, "config.yaml")
|
||
|
||
# 状态存储(SQLite,阶段0:心跳 / 登录态 / 数据态持久化,重启不丢)
|
||
STATE_DB_PATH = os.path.join(BASE_DIR, "state", "state.db")
|