Skip to content

HSNBot ​

HSNBot 是基于 NoneBot2 + OneBot V11 的 QQ 群机器人,提供 Phira 多人房间查询、服务器监控、数据统计等功能。

技术栈 ​

组件技术
框架NoneBot2
协议适配OneBot V11
命令系统Alconna
HTTP 客户端httpx / aiohttp
图片渲染nonebot-plugin-htmlrender (Playwright / Chromium)
数据源 APIHSN 后端监控服务 (http://23.141.172.246:7001)

功能列表 ​

服务器状态 ​

命令说明文件
/cksvr检查 CK 游戏服务器是否在线ckmp.py
/mcstatus查询 Minecraft 服务器状态并渲染为图片mccheck.py
/users / 在线人数获取 Phira 服务器当前在线玩家数users.py

房间管理 ​

命令说明文件
/room查询当前所有房间(图片)room.py
/room record <房间名>查询指定房间的游玩记录room.py

插件通过 SSE 实时监听后端,新房间创建时自动推送图片通知到配置的 QQ 群。

数据监控 ​

命令说明文件
/hsndata health检查监控 API 健康状态hsndata.py
/hsndata history [开始] [结束]获取 HSN 历史在线数据hsndata.py
/hsndata chart <开始> <结束>生成指定时段的在线趋势图表hsndata.py
/hsndata charts列出所有已生成的图表hsndata.py
/hsndata image <类型>获取图表图片(hsn / room / user_bar / user_pie)hsndata.py
/hsndata roomrank房间使用次数排名hsndata.py
/hsndata userrank [用户ID]用户游玩时间排名或查询指定用户hsndata.py
/hsndata leaderboard [数量]获取游玩时间排行榜hsndata.py
/hsndata generate手动触发图表生成hsndata.py
/hsnvs latest获取最新的服务器对比数据和趋势图hsnvs.py
/hsnvs history <分钟数>获取指定分钟前的数据hsnvs.py
/hsnvs stats获取统计结果hsnvs.py
/hsnvs config show | update查看或更新配置hsnvs.py

其他 ​

命令说明文件
/setu [关键词]通过 Lolicon API 获取图片,10 秒后自动撤回setu.py
骂人 / fuck / 吃大粪趣味回复maren.py
/restart [api]重启 Phira 服务器(仅群主/管理员可用)restart.py

配置 ​

在 .env 或 .env.prod 中配置:

env
# Phira 房间插件
PHIRA_API_BASE=http://23.141.172.246:12345
PHIRA_CHART_API=https://phira.5wyxi.com
PHIRA_NOTIFY_GROUPS=[123456789, 987654321]
PHIRA_FONT_PATH=/path/to/font.ttf
PHIRA_BG_PATH=/path/to/background.jpg
PHIRA_LOGO_PATH=/path/to/logo.png
PHIRA_CACHE_TTL=600
PHIRA_SSE_RETRY=5
PHIRA_IMAGE_QUALITY=90

# CK 服务器检查器(在 ckmp.py 中直接修改)
# USERNAME="your-email"
# PASSWORD="your-password"

# HSN 数据监控
HSN_API_BASE=http://23.141.172.246:7001

部署 ​

bash
# 安装依赖
pip install nonebot2 nonebot-adapter-onebot nonebot-plugin-alconna nonebot-plugin-htmlrender
pip install httpx aiohttp mcstatus

# 配置 .env
echo "DRIVER=~fastapi+~httpx" >> .env
echo "HOST=0.0.0.0" >> .env
echo "PORT=8080" >> .env

# 启动
nb run

Last modified byFireflyF09on2026-06-26 14:44

Built with VitePress