用nonebot2构建自己的机器人框架

Posted yeah17981

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用nonebot2构建自己的机器人框架相关的知识,希望对你有一定的参考价值。

链接:NoneBot

首先抄一下nonebot的概念:跨平台 Python 异步 QQ 机器人框架

那么现在就开始吧

(后nonebot2简称nb2)


前情提要

本人小白

啥都不会的那种

本教程是面对比我还小白的人

咱们不用了解怎么运行的直接上号


准备开始

开始之前我们需要一个 版本 >= 3.7 的Python,一个win64的电脑(会linux的大佬还需要我教?),一个放机器人空文件夹(文件夹1),一双手

我们使用快捷键Win+X,点击“Windows PowerShell(管理员)”或“命令提示符(管理员)”,并输入python --version以检查是否安装成功。

成功回复:python 3.9.4(3.7以上)

注意

请在安装 NoneBot v2 之前卸载 NoneBot v1(在cmd或者PowerShel中输入)

pip uninstall nonebot

安装

安装脚手架和适配器

win+r 输入cmd,再输入以下代码

pip install nb-cli
pip install nonebot-adapter-cqhttp

这时候也可以安装插件

# 列出所有的插件
nb plugin list
# 搜索插件
nb plugin search xxx
# 安装插件
nb plugin install xxx

下载 go-cqhttp 对应平台的 release 文件:Releases · Mrs4s/go-cqhttp (github.com)

本人安装的是v0.9.40-fix5版 

找到文件 go-cqhttp_windows_amd64.zip 然后下载


go-cqhttp配置

将文件解压在文件夹中的空白文件夹(文件夹1.1)中

新建一个记事本xxx.txt(爱取啥取啥)

内容:

start go-cqhttp.exe

改成xxx.dat

双击运行xxx.dat 

这时候go-cqhttp.exe就被打开了

此时会出现

打开文件config.hjson

填入机器人的qq号(最好不要填密码可能会被风控)

将文本中的一些内容进行更改

ws_reverse_servers: [
        // 可以添加多个反向WS推送
        {
            // 是否启用该推送
            enabled: false
            // 反向WS Universal 地址
            // 注意 设置了此项地址后下面两项将会被忽略
            // 留空请使用 ""
            reverse_url: ws://you_websocket_universal.server
……

改为 

ws_reverse_servers: [
        // 可以添加多个反向WS推送
        {
            // 是否启用该推送
            enabled: true
            // 反向WS Universal 地址
            // 注意 设置了此项地址后下面两项将会被忽略
            // 留空请使用 ""
            reverse_url: ws://127.0.0.1:xxxx/cqhttp/ws
……

xxxx为端口号,建议避免一些常用数字以防端口被占用。并且记住这个端口

   http_config: {
        // 是否启用正向HTTP服务器
        enabled: true
    ……

改为

   http_config: {
        // 是否启用正向HTTP服务器
        enabled: false
 ……
 
    ws_config: {
        // 是否启用正向WS服务器
        enabled: true
  ……

改为

ws_config: {
        // 是否启用正向WS服务器
        enabled: false
……

再次运行xxx.dat 

会出现下图

这代表配置成功!

可能有人会说:为什么我的程序一直跳出了其他的东西

那是因为我们的nb2还没有开

不着急我们先把程序关掉然后去配置我们的nb2


nb2的配置

打开放机器人的文件夹1

点击路径栏,输入cmd

在命令提示符中输入

nb create

会跳出一个新的页面

[?] Project Name:

输入机器人的名称(英文)

[?] Where to store the plugin?  (Use arrow keys)
 ❯ 1) In a "111" folder
   2) In a "src" folder

方向键(上下)选择文件夹名字,回车确定

[?] Load NoneBot Builtin Plugin?  (y/N)

输入y

[?] Which adapter(s) would you like to use?  (<up>, <down> to move, <space> to select, <a> to toggle, <i> to invert)
 ❯○ cqhttp
  ○ ding
  ○ mirai
  ○ gocq

按一下空格,使cqhttp前的空心小圈变实心,回车确认

结束

在文件夹1中会出现一个新的文件夹xxx(文件夹1.2)

点开文件夹1.2,在文件.env输入

# .env
ENVIRONMENT=dev
CUSTOM_CONFIG=common config  # 这个配置项在任何环境中都会被加载

在文件.env.dev中输入

HOST=127.0.0.1  # 配置 NoneBot 监听的 IP/主机名
PORT=xxxx  # 配置 NoneBot 监听的端口(前面填的端口号)
DEBUG=true  # 开启 debug 模式 **请勿在生产环境开启**
SUPERUSERS=["123456789", "987654321"]  # 配置 NoneBot 超级用户(qq号)
NICKNAME=["xxxxx", "bot"]  # 配置机器人的昵称
COMMAND_START=["/", ""]  # 配置命令起始字符
COMMAND_SEP=["."]  # 配置命令分割字符

# Custom Configs
CUSTOM_CONFIG1="config in env file"
CUSTOM_CONFIG2=  # 留空则从系统环境变量读取,如不存在则为空字符串

关闭


运行

双击运行xxx.dat 和bot.py

然后等待一会

在qq里对机器人发送/echo 111

机器人会回复111

这代表基本框架搭建完了


其他功能

需要插件但我还在学怎么写

如果我会了我就来造福大众!

溜了溜了

以上是关于用nonebot2构建自己的机器人框架的主要内容,如果未能解决你的问题,请参考以下文章

Raspberry Pi 3B 安装NoneBot2

gocqhttp http协议的代码部署与安装示例

NoneBot2插件——打印系统状态

Windows 安装 NoneBot2

无需深度学习框架,如何从零开始用Python构建神经网络

前端框架怎么用??用的好处是什么?