📖 介绍
本插件基于 MsgRankCard 项目改写,是一个 NoneBot2 插件,用于记录群聊消息并生成精美的每日水群排行榜图片。
功能特点:
- 📝 自动记录群聊消息数量和在线时长
- 🎨 生成精美的排行榜图片,支持自定义背景、边框和字体
- 🥇 自动使用排行榜第一名的 QQ 头像作为背景
- 🕐 排行榜图片显示当前北京时间,发图前会播报日报/周报/月报类型;周报/月报还会显示统计起止日期
- ⏳ 在线时长超过 24 小时时按「X天X时X分」显示
- 🔔 发送周报/月报时会 @上榜成员(日报不 @)
- 🖼️ 自动获取用户 QQ 头像
- 🏆 支持查看今日、本周和本月水群排行榜
- 🔔 支持 Superuser 开启排名变动提醒,名次变化后自动重发榜单
- ⏰ 支持按小时定时发送日榜,以及每天定时发送周榜和月榜
- 🎲 已安装馒头好感度插件时,水群榜、周榜、月榜有 0.5% 概率触发「馒头博弈」
- 🧹 支持自动清理过期数据,默认保留35天
💿 安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行,输入以下指令即可安装
nb plugin install nonebot-plugin-msg-rank-card
使用包管理器安装
在 nonebot2 项目的插件目录下,打开命令行,根据你使用的包管理器,输入相应的安装命令
pip
pip install nonebot-plugin-msg-rank-card
poetry
poetry add nonebot-plugin-msg-rank-card
打开 nonebot2 项目根目录下的 pyproject.toml 文件,在 [tool.nonebot] 部分追加写入
plugins = ["nonebot_plugin_msg_rank_card"]
⚙️ 配置
在 nonebot2 项目的 .env 文件中添加下表中的配置
| 配置项 | 必填 | 默认值 | 说明 |
|---|---|---|---|
| msg_rank_data_path | 否 | data/msg_rank | 数据存储路径 |
| msg_rank_resource_path | 否 | 插件目录/resources | 资源文件路径(背景图、边框、字体) |
| msg_rank_max_count | 否 | 10 | 排行榜最大显示人数 |
| msg_rank_auto_clean | 否 | true | 是否每天自动清理过期数据 |
| msg_rank_data_retention_days | 否 | 35 | 每日统计数据保留天数(最低31天) |
| msg_rank_title | 否 | 今日水群排行榜 | 排行榜标题 |
🎉 使用
指令表
| 指令 | 权限 | 需要@ | 范围 | 说明 |
|---|---|---|---|---|
| 水群榜 / msgrank | 群员 | 否 | 群聊 | 查看今日水群排行榜 |
| 周水群榜 / 周榜 | 群员 | 否 | 群聊 | 查看本周一至今日的汇总排行榜 |
| 月水群榜 / 月榜 | 群员 | 否 | 群聊 | 查看本月1日至今日的汇总排行榜 |
| 排名变动提醒 开启|关闭|状态 | Superuser | 否 | 群聊 | 管理本群排名变动提醒 |
| 日榜定时 1-168|关闭|状态 | Superuser | 否 | 群聊 | 按指定小时间隔自动发送今日榜 |
| 周榜定时 HH:MM|关闭|状态 | Superuser | 否 | 群聊 | 每天指定时间自动发送本周榜 |
| 月榜定时 HH:MM|关闭|状态 | Superuser | 否 | 群聊 | 每天指定时间自动发送本月榜 |
| 清理水群数据 / clean_msgrank | 群主/管理员 | 否 | 群聊 | 清理过期数据 |
排名变动提醒默认关闭,开关按群保存。开启后,只有榜单成员或名次顺序发生变化时才会提醒;消息数增加但名次不变时不会重复发送。
定时任务默认关闭,按群保存,机器人重启后会自动恢复。HH:MM 使用 NoneBot APScheduler 配置的时区(默认 Asia/Shanghai)。
效果图
插件会自动记录群聊消息,发送 /水群榜 即可生成精美排行榜图片。
馒头好感度联动(可选)
同时加载 nonebot-plugin-mantou-affection 后,日榜、周榜、月榜和定时榜单都会在每位成员旁显示
“馒头好感 + 当前关系称号 + 一句随好感阶段变化的馒头短评”。好感数据按群读取;
未加载好感度插件、好感度读取失败或该阶段没有文案时卡片保持原样,只是不显示短评。
短评取自好感度插件的 msg_rank_card.rank 场景(按 neutral/warm/close/flirty/intimate 五个阶段),
文案过长时会自动截断,不会盖住排名图案。
群成员手动触发 /水群榜、/周水群榜 或 /月水群榜 后,榜单卡片发送完毕后还有 0.5% 的概率
触发馒头插件新增的「馒头博弈」:馒头会从本次榜单成员中随机抽取 2 位(排除触发者)开局,
概率判定和后续流程都在馒头插件侧,本插件只负责在卡片发出后转交触发者信息。
定时播报不会触发博弈。馒头插件未安装、未启用或调用失败时本插件不受影响,只是不会开局。
自定义资源
当第一名头像下载失败时,插件才会回退到 resources 文件夹中的背景图。你可以替换这些资源文件:
bg/- 背景图片(随机选择)frame/- 排名边框装饰ttf/- 自定义字体(第一个 ttf 文件会被使用)
📄 许可证
本项目基于 MsgRankCard 改写,采用 MIT 许可证。
Metadata
Release files for nonebot-plugin-msg-rank-card 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nonebot_plugin_msg_rank_card-0.1.9.tar.gz | 9.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nonebot_plugin_msg_rank_card-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.0 MB
Release files / nonebot_plugin_msg_rank_card-0.1.9.tar.gz
| Download URL | nonebot_plugin_msg_rank_card-0.1.9.tar.gz |
|---|---|
| Size | 9.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d9e7e587aeb23c92e28201de10436ba398da602e632b979502fc3057112d165c
|
|
BLAKE2b-256 checksum How to use checksums |
7746c3adfb29e4161f33699cbdb9a1542d750cfd151d002b7449b31db723f673
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / nonebot_plugin_msg_rank_card-0.1.9-py3-none-any.whl
| Download URL | nonebot_plugin_msg_rank_card-0.1.9-py3-none-any.whl |
|---|---|
| Size | 9.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2295f4055ceecde485cf63404247ff1645470f9a162bff32e41e823da21a501c
|
|
BLAKE2b-256 checksum How to use checksums |
f6def81f24a5bbd1915a04fee5460698c4f833aa14127b3654b7e49b6f7aba03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|