使用 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
File details
Details for the file nonebot-plugin-kawaii-robot-4.0.0.tar.gz
.
File metadata
- Download URL: nonebot-plugin-kawaii-robot-4.0.0.tar.gz
- Upload date:
- Size: 53.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26cbf50edd0ed290c9b5fc69da26096854caecf84a78e3e26d166126a80e5d8d |
|
MD5 | 46bdc57f3e4f15b30ef02b5a6b060e1a |
|
BLAKE2b-256 | 474c8883cb21cc6ffd845ff7a2093a494deb822bab47d6254fb5d29e98438f96 |
File details
Details for the file nonebot_plugin_kawaii_robot-4.0.0-py3-none-any.whl
.
File metadata
- Download URL: nonebot_plugin_kawaii_robot-4.0.0-py3-none-any.whl
- Upload date:
- Size: 51.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ad5354ea517e5da495ed925ce8359cb544e4c72ab5d45b9161e2dced08cefcd |
|
MD5 | e5fc17acc31f46a4f265734ef58d837b |
|
BLAKE2b-256 | d37465a447d040ecd114046d606ca27eeb93b9ea8af8279749e5480dc2ebb49f |