Skip to main content

使用 Kyomotoi/AnimeThesaurus 的 NoneBot2 的回复(文i)插件

Project description

NoneBotPluginLogo

NoneBotPluginText

NoneBot-Plugin-Kawaii-Robot

✨ 使用 Kyomotoi/AnimeThesaurus 的 NoneBot2 的回复(文 i)插件 ✨

python pdm-managed
license pypi pypi download

📖 介绍

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}在哦~"
  // ...
]

💡 鸣谢

📝 更新日志

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot-plugin-kawaii-robot-4.0.0.tar.gz (53.1 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file nonebot-plugin-kawaii-robot-4.0.0.tar.gz.

File metadata

File hashes

Hashes for nonebot-plugin-kawaii-robot-4.0.0.tar.gz
Algorithm Hash digest
SHA256 26cbf50edd0ed290c9b5fc69da26096854caecf84a78e3e26d166126a80e5d8d
MD5 46bdc57f3e4f15b30ef02b5a6b060e1a
BLAKE2b-256 474c8883cb21cc6ffd845ff7a2093a494deb822bab47d6254fb5d29e98438f96

See more details on using hashes here.

File details

Details for the file nonebot_plugin_kawaii_robot-4.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_kawaii_robot-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ad5354ea517e5da495ed925ce8359cb544e4c72ab5d45b9161e2dced08cefcd
MD5 e5fc17acc31f46a4f265734ef58d837b
BLAKE2b-256 d37465a447d040ecd114046d606ca27eeb93b9ea8af8279749e5480dc2ebb49f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page