首页 > 其他分享 >NoneBot笔记(一):初识Bot

NoneBot笔记(一):初识Bot

时间:2022-11-11 21:44:08浏览次数:70  
标签:Bot nb bot nonebot cqhttp apscheduler 初识 NoneBot go

Windows开发

安装NoneBot

  1. 配置电脑python环境

  2. 用pycharm创建一个项目,启用新的虚拟环境开发项目,避免依赖冲突

  3. 在pycharm内使用Terminal安装包管理工具nb-cli,Nonebot2也会自动安装完成(注意cmd内安装的话是本机的python的全局环境)

pip install nb-cli

image-20220925001031557

  1. 接着使用nb命令创建bot项目
nb create

输入命令之后按引导操作生成一个项目,参考教程:视频教程

image-20220924233603673

配置.env.*文件

.env

ENVIRONMENT=dev

.env.dev

HOST=127.0.0.1
PORT=52912	# 端口号

SUPERUSERS=["2169550948"]    # 配置 NoneBot 超级用户即机器人qq号
NICKNAME=["ggh"]    # 配置机器人昵称
COMMAND_STAR=["/"]  # 配置命令起始字符
COMMAND_SEP=["."]  # 配置命令分割字符

LOG_LEVEL=DEBUG	# 日志打印级别

安装go-cqhttp

配置完成后,我们还需要安装go-cqhttp,这个东西是用于帮助我们将自己编写的nonebot机器人连接到我们的QQ,相当于一个代理商吧

对于go-cqhttp的操作,需要对config.yml进行相应的配置,这里推荐一个安装配置go-cqhttp视频教程

也可参考go-cqhttp官方文档

这里列出几个必须配置的,有三个:uinpassworduniversal

account: # 账号相关
  uin: # QQ账号
  password: '' # 密码为空时使用扫码登录

# 连接服务列表
servers:
  - ws-reverse:
      # 反向WS Universal 地址
      # 注意 设置了此项地址后下面两项将会被忽略
      universal: ws://127.0.0.1:52912/onebot/v11/ws/

配置完成后,首先启动nonebotbot.py启动程序,可以在编译器启动,也可在cmd窗口用命令行启动(注意,命令行启动必须在对应的目录下

命令行启动输入:

nb run
或
python .\bot.py

image-20220925000252238

再点击go-cqhttp.bat启动它,会出现如下窗口,则代表成功连接到nonebot机器人与QQ

命令行启动:

.\go-cqhttp.bat

image-20220925000415814

插件开发

第一个插件

实现了一个简单的交互功能

from nonebot import on_command
from nonebot.adapters.onebot.v11 import Bot, Event

# "你好"是用户对机器人发送的指令名,priority是该指令的优先级,数字越小优先级越高
matcher = on_command("你好", priority=2)


@matcher.handle()
async def test_():
    await matcher.send("hello master!") # 当用户给机器人发送:"你好"时,机器人回复:"hello master!"


# 这个与上面的作用等同
# @matcher.handle()
# async def test_(bot: Bot, event: Event):
#     await bot.send(
#         event=event,
#         message="hello master!"
#     )

定时任务

首先需要下载一个插件,是在当前项目环境中导入

nb plugin install nonebot_plugin_apscheduler

配置

.env.*文件末尾添加

APSCHEDULER_AUTOSTART=true
APSCHEDULER_CONFIG={"apscheduler.timezone": "Asia/Shanghai"}

bot.py文件的main函数中添加

nonebot.init(apscheduler_autostart=True)
    nonebot.init(apscheduler_config={
        "apscheduler.timezone": "Asia/Shanghai"
    })

接下来就可以开发定时任务了,下面是一个私聊给指定好友发送消息的定时任务

import nonebot
from nonebot import require

require("nonebot_plugin_apscheduler")

from nonebot_plugin_apscheduler import scheduler
# 以上都是导入对应的依赖,scheduler是一个定时器插件,配置参见官方文档

# 设定时间的要调用的函数名id
@scheduler.scheduled_job('cron', hour='17', minute='59', id='problem')
async def problem():
    (bot,) = nonebot.get_bots().values()    # 获取bot对象
    await bot.send_msg(
        # 也可设置群聊发送,详情见源码
        mseeage_type="private",
        user_id=int(3206945784),     # 注意python类型转化
        message="你好蛙!"
    )

服务器

配置服务器环境

  1. 安装Python

    教程1

    教程2

安装nb-cli

pip3 install nb-cli

创建bot项目

nb create

进程后台挂载

将Linux程序放在后台运行,这样程序不会随着连接断开关闭

https://blog.csdn.net/qq_41311259/article/details/118786015

标签:Bot,nb,bot,nonebot,cqhttp,apscheduler,初识,NoneBot,go
From: https://www.cnblogs.com/RCLiu/p/16882122.html

相关文章

  • 初识C语言3
    前言承接上文,我们继续学习1.关键字static上一篇博客我们讲解到static修饰局部变量,现在我们讲解一下static修饰全局变量1.1static修饰全局变量源文件1intg_val=2022;源文......
  • 【spring mvc(一)】初识spring mvc——环境搭建
    spring和struts是J2EE的两个主流框架。下面介绍spring3.0的springmvc搭建方式。1.下载jar包   这里包括两种类型的jar包,一个是spring3.0的包,另一个是叫做commons-l......
  • 初识设计模式 - 解释器模式
    简介在某些情况下,为了更好地描述某一些特定类型的问题,我们可以创建一种新的语言,这种语言拥有自己的表达式和结构,即文法规则。解释器设计模式(InterpreterDesignPattern)......
  • Telegram Bot 使用文档
    官方文档创建机器人#在telegram中我们可以通过和一个名为BotFather的机器人交互来申请我们自己的机器人,具体步骤如下添加BotFather为好友点击这里添加botfather......
  • 初识结构体
    结构体结构体可以让C语言创建新的类型例如:创建一个学生structstu{ charname[20];//成员变量 intage; doublescore;};intmain(){ structstus={"张三"......
  • 初识指针
    指针intmain(){ inta=10;//a在内存中要分配空间的—4个字节 printf("%p\n",&a);//%p专门用来打印地址的 int*pa=&a;//pa是用来存放地址的,在C语言中pa叫指针......
  • 初识设计模式 - 访问者模式
    简介访问者设计模式(VisitorDesignPattern)的定义是,允许一个或多个操作应用到一组对象上,解耦操作和对象本身。在使用访问者模式的时候,被访问的元素通常不是单独存在的,它......
  • javascript初识以及总结
    今天主要学习了js的概述,书写的三种位置(和css一样内嵌外联和内联三种)以及变量的定义,变量的定义用的是var来定义的并且学了五种数据类型 有number数值型strin......
  • 初识常见关键字
    C语言提供的关键字//1.C语言提供的,不能自己创建关键字//2.关键字不能做变量名//关键字(先了解以下)//auto是自动的---每个局部变量都是auto修饰的//extern是用来申......
  • 探索OnRobot夹爪|2FG7在食品行业的应用
    背景:我国人口红利的逐渐小时,企业用工成本不断上涨。一家茶饮店面需要至少配有多位人员,而且员工必须熟记全店所有饮品配方,人员培训不仅耗时且需要投入大量资金。面对“无人零......