Skip to content

Repository files navigation

⌨️ 关键词回复

🌊 我听到了生生不息的回响

License Python AstrBot

✨ 简介

一款为 AstrBot 设计的关键词回复插件,支持指令触发、自动监听、正则表达式、图文/At/QQ表情/语音/视频/聊天记录回复,以及引用消息导入内容与精细化的群聊黑白名单控制。


✨ 功能特性

  • 🖥️ 可视化管理: 支持通过 Pages 直接管理、编辑关键词和检测词
  • 🚀 双模式触发: 支持“指令触发”(如 /关键词)和“自动监听”(消息包含关键词即触发)两种模式
  • 📝 多媒体回复: 支持文字、图片、At、QQ表情的组合回复,并支持通过引用消息配置语音、视频、聊天记录为回复内容
  • ↩️ 引用导入: 添加或编辑回复时可直接引用一条消息导入内容,指令正文与引用内容会按顺序合并保存
  • 🔍 正则表达式: 监听模式支持正则表达式匹配,并内置安全检查防止 ReDoS 攻击
  • 🛡️ 黑白名单控制: 每个关键词可独立设置在哪些群聊启用或禁用,支持全局配置
  • 💬 引用回复: 可选在回复时引用触发者的原始消息,让回复更有针对性
  • 🧩 变量模板: 回复文本支持上下文变量(如 {user_name}{group_id}),可动态生成个性化内容
  • 🕒 自动撤回: 支持设置回复消息后的自动撤回延迟,适用于保持群聊整洁
  • 🧊 检测冷却: 支持设置检测词触发冷却时间,防止短时间内高频触发导致刷屏
  • 📊 灵活管理: 支持为一个关键词添加多个回复词条,触发时随机选择;支持通过序号或内容快速操作

📖 使用指南

⚠️ 默认所有管理指令仅限 Bot 管理员及白名单用户使用

1️⃣ 关键词管理 (指令触发型)

直接输入关键词(需唤醒 Bot,如 /关键词)即可触发回复。

命令 格式 说明
添加 /添加关键词 <关键词> <回复内容> 添加新关键词,支持文本、图片、At、QQ表情;也可直接引用消息导入语音、视频、聊天记录等内容
编辑 /编辑关键词 <序号/内容> <新关键词> 修改关键词触发词
删除 /删除关键词 <序号/内容> 删除整个关键词及其所有回复
查看列表 /查看关键词列表 列出所有指令触发型的关键词(别名:/查看所有关键词
详情 /查看关键词 <序号/内容> 查看关键词的详细配置及完整回复内容

2️⃣ 检测词管理 (自动监听型)

监听聊天消息,匹配成功后自动回复。

命令 格式 说明
添加 /添加检测词 [-r] <关键词> <回复内容> -r 参数表示启用正则表达式匹配;回复内容支持文本、图片、At、QQ表情,也可直接引用消息导入语音、视频、聊天记录
编辑 /编辑检测词 [-r] <序号> <新关键词> 修改检测词触发词或正则开关
删除 /删除检测词 <序号/内容> 删除该检测词
查看列表 /查看检测词列表 列出所有自动监听型的检测词(别名:/查看所有检测词
详情 /查看检测词 <序号/内容> 查看检测词的匹配模式及回复内容

3️⃣ 回复词条管理

每个关键词/检测词可以拥有多个回复,系统会随机抽取一个。

  • 添加回复: /添加[关键词/检测词]回复 <序号/内容> <新回复内容>
  • 查看回复: /查看[关键词/检测词]回复 <序号/内容> [回复序号]
  • 编辑回复: /编辑[关键词/检测词]回复 <序号/内容> [回复序号] <新回复内容>
  • 删除回复: /删除[关键词/检测词]回复 <序号/内容> [回复序号]

Tip

  • 当关键词仅有一个回复时,查看、编辑和删除指令中的 回复序号 可以省略。
  • 添加或编辑回复时,<新回复内容> 可省略,可直接通过引用消息提供内容。引用导入仅 aiocqhttp 平台可用。
  • 文本中支持使用 [@12345] 转义保存 At,适合在当前会话无法真实艾特目标用户时使用。

4️⃣ 群聊控制 (黑白名单)

Tip

以下示例以“关键词”为例,对于“检测词”,只需将指令中的 关键词 替换为 检测词 即可(如 /启用检测词)。

命令 示例 说明
指定群启用 /启用关键词 1 123456789 切换为白名单模式,并添加指定群号
当前群启用 /启用关键词 1 在当前群聊启用该词
全局启用 /启用关键词 1 全局 切换为黑名单模式并清空,即全平台生效
指定群禁用 /禁用关键词 1 123456789 切换为黑名单模式,并添加指定群号
当前群禁用 /禁用关键词 1 在当前群聊禁用该词
全局禁用 /禁用关键词 1 全局 彻底关闭该关键词的触发

5️⃣ 变量模板

在回复文本中可直接使用以下占位符(触发时自动替换):

  • {user_id}: 触发者 ID
  • {user_name}: 触发者昵称
  • {group_id}: 群号
  • {self_id}: Bot 自身 ID
  • {platform}: 平台名
  • {message}: 触发的原始消息文本
  • {date}: 当前日期(YYYY-MM-DD
  • {time}: 当前时间(HH:MM:SS
  • {datetime}: 当前日期时间(YYYY-MM-DD HH:MM:SS

⚙️ 配置项

在 AstrBot 后台配置界面进行设置:

配置项 类型 默认值 描述
whitelist list[str] [] 允许管理插件的用户 ID 列表(非管理员也可用指令)。
notify_permission_denied bool true 无权限用户执行受限命令时是否发送“权限不足”提示。关闭后静默忽略。
allow_group_member_list_keywords bool false 是否允许普通群成员使用“查看关键词列表”(仅显示当前群已启用的关键词名)。
allow_group_member_list_detects bool false 是否允许普通群成员使用“查看检测词列表”(仅显示当前群已启用的检测词名)。
quote_reply bool false 回复时是否引用触发回复的消息。
qq_forward_all_replies bool false 是否在 QQ 群聊中将同一关键词/检测词下的全部回复以合并转发形式发送;关闭时保持随机发送单条回复。
recall_delay str "0 0" 自动撤回延迟(秒)。格式:"关键词延迟 检测词延迟"。0 表示不撤回。
case_sensitive bool false 非正则关键词/检测词匹配时是否区分大小写(含按内容查找、触发匹配)。
cooldown int 0 检测词触发冷却时间(秒),0 表示不冷却。
ignore_cooldown_on_exact_match bool false 完全匹配时是否无视冷却时间(仅对非正则检测词生效)。
enable_text_template bool true 是否启用回复文本变量模板替换。

📝 更新日志

详见 CHANGELOG


🙏 致谢


❤️ 支持


如果本插件对你有帮助,欢迎点个 ⭐ Star 支持一下!

About

一款为 AstrBot 设计的关键词回复插件。

Resources

Stars

11 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

Generated from Soulter/helloworld