refactor(bf-bot): 插件重构为 handlers/services/utils 分层,资源归入 res/

- 旧平铺模块(data/data_utils/database_op/image_builder*/get_bf6_data/
  gametools_bf6/bf6_data/img_utils)拆分为 handlers(绑定/查询)、
  services(fetchers/processing/query)、utils(渲染/参数)分层;
  新增 repository.py / config.py / paths.py
- 字体/图片/模板资源迁入 res/,新增 BF2042 卡面素材(bg/object_icon 等)
- browser_ext/:BF2042 扩展捕获桥(WS 直连兜底通道)源码入库
- 新增 hexi/web/src/plugins/bf_bot 前端管理页
- 新增 tests:test_bf_bot_helpers / repository / tracker_api

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
sansenhoshiandClaude Code committed 2026-10-13 17:53:06 +08:00
1 parent 614e1d7e00
commit a31aab00e8
752 files changed
+6241 -2506

No files matched your search

@@ -0,0 +1,40 @@
"""路径唯一来源:插件根目录 / 静态资源 / 运行数据。
- 静态资源在插件包内 `res/`(字体、模板、通知图、物品图标)。
- 运行数据统一放 `hexi/data/nonebot_plugin_bf_bot/`(绑定库、头像缓存、tracker cookie),
不再写进插件源码目录。
"""
from pathlib import Path
PLUGIN_ROOT = Path(__file__).resolve().parent
RES_DIR = PLUGIN_ROOT / "res"
# hexi/plugins/nonebot_plugin_bf_bot -> hexi
_HEXI_ROOT = PLUGIN_ROOT.parents[1]
DATA_DIR = _HEXI_ROOT / "data" / "nonebot_plugin_bf_bot"
DB_PATH = DATA_DIR / "user_data.db"
AVATAR_CACHE_DIR = DATA_DIR / "avatar_cache"
DEFAULT_COOKIES_PATH = DATA_DIR / "cookies" / "tracker.txt"
# BF2042 直连通道(无浏览器)的 TRN OIDC 令牌文件:刷新链的唯一状态,
# 由 services/fetchers/tracker_api.py 读写(access_token 过期前自动轮换续期)
TRN_TOKENS_PATH = DATA_DIR / "trn_tokens.json"
# BF2042 取数通道(tracker.gg):专用 Edge 配置目录 + 可执行文件
EDGE_PROFILE_DIR = DATA_DIR / "edge_profile"
EDGE_EXECUTABLE_DEFAULT = (
r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
)
# BF2042 卡片素材(旧 project 迁移,2026-10):背景库/物品图标/专家头像/兵种/logo
BF2042_RES = RES_DIR / "bf2042"
BF2042_BG_DIR = BF2042_RES / "bg"
BF2042_OBJECT_ICON_DIR = BF2042_RES / "object_icon"
BF2042_CLASSES_DIR = BF2042_RES / "classes"
BF2042_SPECIALIST_ICON_DIR = BF2042_RES / "specialist_icon"
BF2042_CLASS_ICON_DIR = BF2042_RES / "class_icon"
BF2042_PLATFORM_DIR = BF2042_RES / "platform"
BF2042_LOGO_DIR = BF2042_RES / "bf2042_logo"
BF2042_DEV_LOGO_DIR = BF2042_RES / "dev_logo"