由于本人精力问题,本仓库不再维护。当然用还是可以用的~
Nonebot迭代速度很快,breaking changes很多,而本bot基于旧版Nonebot开发,已经无法融合到新的生态当中了。还请移步到其他更优秀的Bot叭。
本机器人的名字取自「辉夜大小姐」,实际上与辉夜并没有什么关系,请勿将bot与人物联系起来~
最初将Bot用于PCR公会群的管理,使用的是HoshinoBot。后来本人开始魔改Bot,但苦于HoshinoBot没有全面的API文档,举步维艰,将其搁置了很长一段时间。偶然间发现Nonebot框架推出了v2版本,便打算基于Nonebot2来实现自己的bot,并将HoshinoBot的部分功能移植到其中。
HoshinoBot将Nonebot的API封装为Service的思路令人印象深刻,因此,这个项目也采取了类似的封装方法。
本项目使用poetry来管理虚拟环境。
- cd到项目根目录
- 使用
poetry install
来为虚拟环境安装依赖包。 - 使用
poetry shell
进入虚拟环境 - 使用
nb run
运行bot。
如果没啥问题的话就能在终端看到启动全过程了。
请参阅NoneBot2文档中的CQHTTP 协议使用指南
注:文中提到的【nonebot配置】默认为.env.dev
如使用Docker部署,请自行修改docker配置。
在根目录下有.env
开头的几个文件,查阅NoneBot2基本配置
这里仅介绍几个额外添加的配置项:
RES_DIR
:图片资源目录。R模块中提供了方法来访问的该目录。CACHE_DIR
:缓存目录。某些功能可能需要建立一个数据库,或者缓存一些东西在其中。INCREASE_WELCOMES
:入群欢迎词
可通过
from nonebot import get_driver
global_config = get_driver().config
var = global_config.somekey
来获取配置。
- 使用
nb plugin new
创建新插件 - 在插件的
__init__.py
内敲入sv = Service('svname')
来创建服务 - 按照你的需要使用Service下的各种修饰器来修饰你的函数。
下面是一个Example
from nonebot.adapters.cqhttp import Bot, Event
sv = Service('Test')
# 响应指令“你好”
@sv.on_command('你好')
async def on_greet(bot: Bot, event: Event):
await bot.send(event, '好个锤子')
# 响应关键词“草”等
@sv.on_keyword(['草', 'ww', '艹'])
async def on_grass(bot: Bot, event: Event):
await bot.send(event, '草草草')
兼容Nonebot2的插件。
请前往NoneBot商店获取,安装方法查阅NoneBot2文档
API文档
文档在慢慢完善。。。
- Pcr模块、dice模块、util模块、R、aiorequests移植自 @Ice-Cirno HoshinoBot
- PcrDuel模块来着 @Rs794613 PcrDuel
- gacha模块魔改自 @abrahum nonebot_plugin_simdraw
- genshin模块移植自 @H-K-Y Genshin_Impact_bot