使用 Kyomotoi/AnimeThesaurus 的 NoneBot2 的回复(文i)插件
Project description
📖 介绍
WARNING:高二次元浓度警告
词库回复
当用户 @机器人 或者 提到机器人昵称时,会根据词库回复一条消息
戳一戳回复
当用户戳机器人的时候,机器人会戳回去,或者随机回复一条词库中消息
群聊(打断)复读姬
现在可以复读啦!谁不喜欢 +1 呢
当然也可以打断复读...谁不喜欢打断复读呢
💿 安装
以下提到的方法 任选其一 即可
[推荐] 使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot_plugin_kawaii_robot
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot_plugin_kawaii_robot
pdm
pdm add nonebot_plugin_kawaii_robot
poetry
poetry add nonebot_plugin_kawaii_robot
conda
conda install nonebot_plugin_kawaii_robot
打开 nonebot2 项目根目录下的 pyproject.toml
文件, 在 [tool.nonebot]
部分的 plugins
项里追加写入
[tool.nonebot]
plugins = [
# ...
"nonebot_plugin_kawaii_robot"
]
⚙️ 配置
插件
在 NoneBot2 项目的 .env
文件中按需添加下面的配置项
# 机器人昵称
NICKNAME=[]
# 词库回复权限,`ALL` 就是全部聊天都会触发回复,`GROUP` 就是仅群聊
LEAF_PERMISSION=ALL
# 忽略词,指令以本列表中的元素开头不会触发回复
# 例:[".", "#", "你好"]
LEAF_IGNORE=[]
# 回复模式,`-1` 关闭全部 at 回复,`0` 仅启用词库回复,`1` 开启所有回复
LEAF_REPLY_TYPE=1
# 戳一戳回复文字概率,范围 `0` ~ `100`,`-1` 关闭戳一戳回复,`0` 代表始终戳回去
LEAF_POKE_RAND=20
# 触发复读或打断次数,群内复读 `{0}` ~ `{1}` 次数后触发复读或打断
LEAF_REPEATER_LIMIT=[2, 6]
# 打断概率,范围 `0` ~ `100`,`0` 关闭打断
LEAF_INTERRUPT=20
# 词库回复匹配模式,`0` 是精确匹配,`1` 是关键词匹配
LEAF_MATCH_PATTERN=1
# 词库回复是否需要 @机器人 或包含机器人昵称
LEAF_NEED_AT=True
# 当 `LEAF_NEED_AT` 为 `False` 时,非 @机器人 时的词库回复触发概率,范围 `0` ~ `100`
LEAF_TRIGGER_PERCENT=5
# 戳一戳回复延时,单位秒
LEAF_POKE_ACTION_DELAY=[0.5, 1.5]
# 当回复存在多条消息时,发送消息的间隔时间,单位秒
LEAF_MULTI_REPLY_DELAY=[1.0, 3.0]
# 是否载入内置回复词库
# 内置了 Kyomotoi/AnimeThesaurus 词库(data.json),还有咱自制的 bot 的词库(leaf.json)
LEAF_LOAD_BUILTIN_DICT=True
# 是否载入内置特殊回复词库
LEAF_LOAD_BUILTIN_SPECIAL=True
附加词库
加载
把你自己的词库(json 文件)扔到 data/kawaii_robot
文件夹里就可以加载啦!
可以加载多个 json 文件。
会忽略文件名以 _
开头的文件。
如果扔进了奇怪的东西大概会加载失败,然后。。。跳过,继续加载下一个文件。
不要把奇怪的东西扔进资源里呀 kora
顺便一提,自己的词库是最优先的。 现在并到一起了
编写
参考 Kyomotoi/AnimeThesaurus 的 json 字典格式,键是关键词字符串,值是回复列表
注意:词库要符合 json 格式 如果报解码错误(UnicodeDecodeError
)先检查自己的词库是不是 无 BOM 的 UTF-8 编码格式
回复里可以写变量,目前用 str.format()
格式化;也可以往里写 CQ 码。
如果回复中需要用到 {
或 }
,请用 {{
或 }}
代替。
支持的变量:
{user_id}
:发送者 QQ 号{username}
:发送者昵称(获取失败则默认为你
){bot_nickname}
:机器人昵称(没有设置则默认为可爱的咱
){segment}
:用于分割消息,该变量前的文本将会单独为一条消息发送
示例:
{
"呐": [
"嗯?{bot_nickname}在哦~{username}有什么事吗?"
// ...
]
}
特殊词库
在 data/kawaii_robot
文件夹里有几个特殊的附加词库文件(在 const.py
中有对应的内置词库):
_hello.json
:用户只 at 了机器人,没有带任何其他文本消息时回复的内容_poke.json
:用户戳一戳机器人时回复的文本内容_unknown.json
:用户发送的消息没有匹配到任何词库内容时回复的消息_interrupt.json
:打断复读时回复的消息
这些词库的格式是一个文本数组,每个元素是一条回复,同样可以使用上面提到的变量
示例:
[
"{username}你好~",
"{bot_nickname}在哦~"
// ...
]
💡 鸣谢
- 插件改编
抄自 nonebot_plugin_smart_reply:使用了青云客 api 的的智能障回复插件 - 复读姬借鉴
抄自 nonebot_plugin_repeater:群聊复读机
📝 更新日志
4.0.0
- 完全重构插件代码,更改项目结构,使用
pdm
管理项目 - 词库优化(详见 附加词库):
- 加载:现在可以直接往
data/kawaii_robot
文件夹里扔你自己的 json 词库了 - 编写:支持了一些变量
- 加载:现在可以直接往
- 配置项的增加与修改(详见 配置):
- 修改
LEAF_IGNORE
:修改类型为Set[str]
,配置书写方式不变 - 修改
LEAF_AT_MOD
:更名为LEAF_NEED_AT
,修改类型为bool
- 增加
LEAF_TRIGGER_PERCENT
- 增加
LEAF_POKE_ACTION_DELAY
- 增加
LEAF_LOAD_BUILTIN_DICT
- 增加
LEAF_LOAD_BUILTIN_SPECIAL
- 增加
LEAF_MULTI_REPLY_DELAY
- 修改
- 还有的可能没列出来,问就是我忘了,qwq
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nonebot-plugin-kawaii-robot-4.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26cbf50edd0ed290c9b5fc69da26096854caecf84a78e3e26d166126a80e5d8d |
|
MD5 | 46bdc57f3e4f15b30ef02b5a6b060e1a |
|
BLAKE2b-256 | 474c8883cb21cc6ffd845ff7a2093a494deb822bab47d6254fb5d29e98438f96 |
Hashes for nonebot_plugin_kawaii_robot-4.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ad5354ea517e5da495ed925ce8359cb544e4c72ab5d45b9161e2dced08cefcd |
|
MD5 | e5fc17acc31f46a4f265734ef58d837b |
|
BLAKE2b-256 | d37465a447d040ecd114046d606ca27eeb93b9ea8af8279749e5480dc2ebb49f |