QBot - *--_

QBot - *--_

浅尝 qqBot

使用的是 python3.12+nonebot2+Lagrange.OneBot 框架,实现了一个简单的 qqBot。

全手工配置

有用 uv 所以使用 nonebot2 的脚手架工具的话有点麻烦,需要嵌套一层 venv,而且不能使用nb pip ...所以就手动配置了。

  1. 首先要登录上 qq,这里用到的是Lagrange.OneBot_win-x64_net9.0_SelfContained.zip点击跳转到下载目录
  2. 解压后,在目录下找到Lagrange.OneBot.exe执行,第一次执行后退出。
  3. 打开文件配置器按照需要进行配置,然后在目录下找到appsettings.json文件,将里面的内容替换成文件配置器生成的配置。
    • 一般情况下只需要找到二维码设定->控制台兼容模式将这设置打开,剩余的能看懂就改。
  4. 执行Lagrange.OneBot.exe,如果一切正常的话会显示一个二维码,使用手机 qq 扫描二维码登录即可。记得勾选下次登录无需确认
  5. 这样 QQ 就完成了登录配置。

接下来就是配置 nonebot2 了,我使用的是 uv 来进行管理的(不会 uv 的点击),所以步骤仅供参考。

  1. 找个合适的位置uv init -p 3.12 -q

  2. 安装 pythonuv run main.py

  3. 安装 nonebot2+驱动器uv pip install nonebot2[fastapi],当然也可以选择其他驱动器具体看这里

  4. 安装适配器(OneBotV11)uv pip install nonebot-adapter-onebot当然也可以选择其他驱动器具体看这里

  5. 配置项目文件,没有就手动创建,有就直接改

    • .env,添加以下内容
     HOST=127.0.0.1  # 配置 NoneBot 监听的 IP / 主机名PORT=8080  # 配置 NoneBot 监听的端口COMMAND_START=["/"]  # 配置命令起始字符COMMAND_SEP=["."]  # 配置命令分割字符
    
    • .env.dev,添加以下内容
     LOG_LEVEL=DEBUG
    
    • .env.prod,添加以下内容
     LOG_LEVEL=INFO
    
    • pyproject.toml,添加以下内容
     [project]name = "qqbot"version = "0.1.0"description = "qqbot"readme = "README.md"requires-python = "<4.0,>=3.9"dependencies = [][tool.nonebot]adapters = [{ name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11" },]plugins = []plugin_dirs = ["src"]builtin_plugins = ["echo"]
    
    • uv.lock添加以下内容
    version = 1
    revision = 3
    requires-python = ">=3.9, <4.0"[options]
    prerelease-mode = "if-necessary"[[package]]
    name = "qqbot"
    version = "0.1.0"
    source = { virtual = "." }
    
Tree
│  .env # 主配置文件
│  .env.dev # 开发环境配置文件
│  .env.prod # 生产环境配置文件
│  .gitignore # git忽略文件
│  .python-version # python版本
│  bot.py # 主程序
│  main.py # 启动文件
│  pyproject.toml # 项目配置文件
│  README.md # 项目说明文件
│  uv.lock # uv配置文件
│
├─Lagrange.OneBot # Lagrange.OneBot目录
│  └─bin
│      └─Release
│          └─net9.0
│              └─win-x64
│                  └─publish
│                      │  appsettings.json # Lagrange.OneBot配置文件
│                      │  device.json # 设备信息
│                      │  keystore.json # 密钥信息
│                      │  Lagrange.OneBot.exe # Lagrange.OneBot可执行文件
│                      │  qr-0.png
│                      │
│                      └─lagrange-0-db
└─src # 插件存放位置└─ plugintest.py # 插件测试文件