Files
HeXi/hexi/plugins/nonebot_plugin_bf_bot/__init__.py
T
sansenhoshiandClaude Code a31aab00e8 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>
2026-10-13 17:53:06 +08:00

63 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""BF查询 —— 入口(MTSS:handlers → services → repository + utils)。
只做五件事:元数据 / require / 导入子模块(命令 + 配置 + Web)/ 建表 / 扩展桥启停钩子。
业务命令在 handlers/,编排在 services/,数据读写走 repository.py。
"""
from nonebot import get_driver, require
from nonebot.log import logger
from nonebot.plugin import PluginMetadata
require("nonebot_plugin_alconna")
__plugin_meta__ = PluginMetadata(
name="BF查询",
description="战地3,4,1,5,2042,6",
usage="""
bf3: /bf3 [EAID] (查询BF3数据)
bf4: /bf4 [EAID] (查询BF4数据)
bf1: /bf1 [EAID] (查询BF1数据)
bfv: /bfv [EAID] (查询BFV数据)
bf2042: /bf2042 [EAID] (查询BF2042生涯数据)
bf2042: /bf2042 武器|载具|装备 [EAID] (BF2042 榜单)
bf2042: /bf2042 模式 [EAID] (BF2042 各模式明细)
bf6: /bf6 [EAID] (查询BF6数据)
绑定: /绑定 EAID (绑定你的QQ与EAID)
解绑: /解绑 (解除你的QQ与当前绑定的EAID)
修改绑定: /修改绑定 EAID (修改你的QQ与当前绑定的EAID)
以上查询命令省略 EAID 时使用已绑定账号;命令需要 @机器人。
""".strip(),
type="application",
)
# 导入子模块:handlers 注册命令,config 注册配置,web 提供 /api/bf_bot
from . import config as _config # noqa: E402
from . import handlers as _handlers # noqa: E402,F401
from . import web as _web # noqa: E402,F401
from .repository import init_database # noqa: E402
# 建表(幂等):库文件不随仓库分发,新环境/热重载都要在这里补齐,否则查询报 no such table
if not init_database():
logger.error("用户数据库初始化失败,绑定/标签功能将不可用")
_config.register_config()
# BF2042 浏览器扩展桥:WS 服务端随 bot 启停(127.0.0.1;见 services/fetchers/tracker_bridge.py)
from .services.fetchers import tracker_bridge as _tracker_bridge # noqa: E402
_driver = get_driver()
_driver.on_startup(_tracker_bridge.start_bridge_server)
_driver.on_shutdown(_tracker_bridge.stop_bridge_server)
# 注册到统一 Web 管理台(/hub):hub 启动时挂载 /api/bf_bot
# 前端页面 hexi/web/src/plugins/bf_bot/(绑定列表 + 删除)
from hexi.web_hub.web_plugin_registry import register_web_plugin # noqa: E402
register_web_plugin(
"bf_bot",
"BF查询",
"gamepad",
lambda: _web.build_admin_app(),
module_name=__name__,
)