quotes
一个 AstrBot 插件(以下示例假设指令前缀为 /,如有修改请替换为自己的前缀):
- 上传语录:在“回复某人的消息”时发送
/上传(可附带图片)。图片将按群分目录保存到data/quotes/images/<群号>/;私聊为data/quotes/images/private_<发送者QQ>/。上传时应在指令后面@某人指定图片语录归属,例如:/上传 @语录提供者;不 @ 则默认归属上传者。注意:必须先写指令(如/上传),再在后面@群友,@群友 /上传这样的写法不会被识别为上传指令。 - 随机语录:发送
/语录;- 可选:
/语录 @某人或指令前缀+语录 12345678仅随机该用户的语录(按 QQ 号匹配)。 - 若该语录含用户上传图片,将直接发送原图;否则渲染文本语录图(强制显示头像,使用 qlogo)。
- 可选:
- 删除语录:在“回复机器人刚发送的随机语录消息”时发送
/删除(或/删除语录),即可删除该语录。 - 戳一戳触发:在支持 OneBot v11/Napcat 的 QQ 平台中,对机器人使用“戳一戳”(Poke)时,将自动随机发送一条语录,行为等同于在当前会话执行
/语录指令(遵循 global_mode 配置及语录过滤规则)。
配置
- global_mode:是否开启“全局模式”。开启后随机语录在所有群/私聊范围内共享;关闭则各群/会话互相隔离(默认)。
- delete_permission:删除语录指令的权限组,字符串枚举值为
群员、管理员、群主、Bot管理员。其中:群员:所有人可使用删除语录指令;管理员:仅群管理员、群主以及 AstrBot 配置中的 Bot 管理员可用;群主:仅群主以及 Bot 管理员可用;Bot管理员:仅 AstrBot 配置中的 Bot 管理员(admins_id列表)可用。
- blacklist:语录黑名单 QQ 号配置,类型为
list,每个元素为一个 QQ 号字符串(仅数字)。例如["123456789", "987654321"]。被加入黑名单的用户不会再新增语录记录(包括使用“上传 QQ号/@”的指令)。旧版本文本配置会被保留兼容解析。 - avatar.provider:
qlogo(默认)或platform - image:图像样式(宽高/背景色/文字色/字体等)
- image_signature_use_group:是否让语录图片右下角的签名使用语录所属成员在当前群的群名片(群名片/群昵称)而不是 QQ 名称,布尔值,默认
false。开启后会在 Napcat/OneBot v11 场景下优先读取该成员的群名片,获取失败时退回显示 QQ 名称。 - poke_enabled:是否启用“戳一戳触发随机语录”功能,布尔值,默认
true。 - poke_probability:戳一戳触发随机语录的概率(整数 0-100),默认
100。0表示完全不触发,100表示每次戳 Bot 都触发,中间值表示对应百分比。 - poke_group_whitelist:戳一戳触发的群白名单(群号列表)。当该列表非空时,仅这些群内对 Bot 的戳一戳才会触发随机语录;留空表示不启用白名单。
- poke_group_blacklist:戳一戳触发的群黑名单(群号列表)。当白名单为空且该列表非空时,这些群内对 Bot 的戳一戳不会触发随机语录;若同时配置白名单,则白名单优先。
数据持久化于 AstrBot 根目录:
- 文本:
data/quotes/quotes.json - 图片:
data/quotes/images/*(按群分目录)
Napcat/OneBot 平台默认使用 qlogo 头像;也可在配置中改为 platform。