2026-10-13 17:53:06 +08:00
|
|
|
|
"""BF查询 —— 入口(MTSS:handlers → services → repository + utils)。
|
|
|
|
|
|
|
|
|
|
|
|
只做五件事:元数据 / require / 导入子模块(命令 + 配置 + Web)/ 建表 / 扩展桥启停钩子。
|
|
|
|
|
|
业务命令在 handlers/,编排在 services/,数据读写走 repository.py。
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
from nonebot import get_driver, require
|
2026-09-01 13:13:40 +08:00
|
|
|
|
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="""
|
2026-10-13 17:53:06 +08:00
|
|
|
|
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数据)
|
2026-09-01 13:13:40 +08:00
|
|
|
|
绑定: /绑定 EAID (绑定你的QQ与EAID)
|
|
|
|
|
|
解绑: /解绑 (解除你的QQ与当前绑定的EAID)
|
|
|
|
|
|
修改绑定: /修改绑定 EAID (修改你的QQ与当前绑定的EAID)
|
2026-10-13 17:53:06 +08:00
|
|
|
|
以上查询命令省略 EAID 时使用已绑定账号;命令需要 @机器人。
|
2026-09-01 13:13:40 +08:00
|
|
|
|
""".strip(),
|
2026-09-08 14:25:32 +08:00
|
|
|
|
type="application",
|
2026-09-01 13:13:40 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
# 导入子模块: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
|
2026-09-01 13:13:40 +08:00
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
# 建表(幂等):库文件不随仓库分发,新环境/热重载都要在这里补齐,否则查询报 no such table
|
|
|
|
|
|
if not init_database():
|
|
|
|
|
|
logger.error("用户数据库初始化失败,绑定/标签功能将不可用")
|
2026-09-01 13:13:40 +08:00
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
_config.register_config()
|
2026-09-01 13:13:40 +08:00
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
# BF2042 浏览器扩展桥:WS 服务端随 bot 启停(127.0.0.1;见 services/fetchers/tracker_bridge.py)
|
|
|
|
|
|
from .services.fetchers import tracker_bridge as _tracker_bridge # noqa: E402
|
2026-09-01 13:13:40 +08:00
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
_driver = get_driver()
|
|
|
|
|
|
_driver.on_startup(_tracker_bridge.start_bridge_server)
|
|
|
|
|
|
_driver.on_shutdown(_tracker_bridge.stop_bridge_server)
|
2026-09-01 13:13:40 +08:00
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
# 注册到统一 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
|
2026-09-01 13:13:40 +08:00
|
|
|
|
|
2026-10-13 17:53:06 +08:00
|
|
|
|
register_web_plugin(
|
|
|
|
|
|
"bf_bot",
|
|
|
|
|
|
"BF查询",
|
|
|
|
|
|
"gamepad",
|
|
|
|
|
|
lambda: _web.build_admin_app(),
|
|
|
|
|
|
module_name=__name__,
|
|
|
|
|
|
)
|