# konabot 在 MTTU 内部使用的 bot 一只。 ## 协助开发方式 请首先联系 passthem 以获得该 Gitea 网站的账号和初始密码,登录后我将会给你添加本仓库的权限。然后,按照下面的方式配置环境。 ## 环境配置 本项目使用 Poetry 进行版本管理 ### 前置要求 - 一台四肢健全的电脑 - 或许科学上网很重要 - 安装 [git](https://git-scm.com/) 版本管理工具 - 安装 [python](https://www.python.org/),推荐 3.12.x 版本或以上 - 大脑 - 上面不会的可以问 AI,你把这个全文复制粘贴给 AI 都行,让它手把手教你配置环境 - 也可以问我,因为 AI 很多时候没法解决梯子问题 - 也可以找群友问 ### 安装 pipx 和 poetry ```bash python -m pip install --user pipx pipx ensurepath pipx install poetry ``` ### 下载代码并安装依赖 在你喜欢的(以后不太会移动的,专门用来装代码的)文件夹里面打开控制台。 ```bash git clone https://gitea.service.jazzwhom.top/Passthem/konabot.git cd konabot poetry install ``` ### 编辑配置文件 如果你使用 [VSCode](https://code.visualstudio.com/),可以在控制台输入指令,在此处打开 VSCode: ```bash code . ``` 复制 `.env.example` 文件并改名为 `.env`。 #### 如果你要配置 Discord 首先,在 [Discord 开放平台](https://discord.com/developers/applications) 创建应用和机器人,记好 Bot Token。然后,按照 [该文档](https://github.com/nonebot/adapter-discord) 编辑 `.env` 文件,并多添加一行 `ENABLE_DISCORD=true` #### 如果你要配置 Onebot(QQ 方向) 你可以下载一个 Onebot 模拟器:[Matcha](https://github.com/A-kirami/matcha) 然后,根据 [该文档](https://onebot.adapters.nonebot.dev/docs/guide/setup) 配置连接,并多添加一行 `ENABLE_QQ=true` #### 如果你想禁用控制台的 Bot 面板 配置 `ENABLE_CONSOLE=false` #### 配置并支持 LLM(大语言模型) 详见[LLM 配置文档](/docs/LLM.md)。 #### 配置 konabot-web 以支持更高级的图片渲染 详见[konabot-web 配置文档](/docs/konabot-web.md) #### 数据库配置 本项目使用SQLite作为数据库,默认数据库文件位于`./data/database.db`。可以通过设置`DATABASE_PATH`环境变量来指定其他位置。 ### 运行 使用命令行手动启动 Bot: ```bash poetry run just watch ``` 如果你不希望自动重载,只是想运行 Bot,可以直接运行: ```bash poetry run python bot.py ``` ## 开发文档 - Nonebot2 开发文档上可以参考的内容 - [事件响应器](https://nonebot.dev/docs/tutorial/matcher) - [事件处理](https://nonebot.dev/docs/tutorial/handler) - [Alconna 插件](https://nonebot.dev/docs/best-practice/alconna/) ## 代码测试 本项目使用 pytest 进行自动化测试,你可以把你的测试代码放在 `./tests` 目录下。 使用命令行执行测试: ```bash poetry run just test ``` 使用命令行,在浏览器查看测试覆盖率报告: ```bash poetry run just coverage # 此时会打开一个 :8000 端口的 Web 服务器 # 你可以在 http://localhost:8000 查看覆盖率报告 # 在控制台使用 Ctrl+C 关闭这个 Web 服务器 ```