nonebot2聊天机器人插件10:迁移至nonebot2.0.0b5

  • 1. 版本升级
  • 2. go-cqhttp后端调整
  • 3. nonebot2前端改动
    • 3.1 导入库方式改变
    • 3.2 命令信息的改变

该插件涉及知识点:将旧插件迁移至高版本
插件合集:nonebot2聊天机器人插件

该系列为用于QQ群聊天机器人的nonebot2相关插件,不保证完全符合标准规范写法,如有差错和改进余地,欢迎大佬指点修正。
前端:nonebot2
后端:go-cqhttp
插件所用语言:python3

在被版本差异折磨了几个月后,终于在这个国庆假期决定抽出时间,将nonebot2==2.0.0a15迁移到新版本的nonebot2==2.0.0b5,以避免与新版本代码的各种不兼容问题。

1. 版本升级

更新的方式其实很简单,只需要安装nb-cli:
pip install nb-cli
然后运行nb创建一个项目,依次选择:

在确认创建后,nb-cli会自动从pip下载新版本的库。

2. go-cqhttp后端调整

打开后端的go-cqhttp文件夹,找到config.yml文件,找到反向WS服务的部分,将原本的

universal: ws://127.0.0.1:36604/cqhttp/ws

修改为

universal: ws://127.0.0.1:36604/onebot/v11/ws

3. nonebot2前端改动

3.1 导入库方式改变

全部写下来是不可能的,因此只是记录最常用的改动,更多请自己查文档。

# 原本的写法
from nonebot.adapters.cqhttp import MessageSegment
# 修改的写法
from nonebot.adapters.onebot.v11 import MessageSegment

3.2 命令信息的改变

举个例子,如果原本让机器人计算1+1的命令是/计算1+1
其中,/是命令字符, 计算是命令内容, 1+1才是输入字符串。
那么原本的写法:

from nonebot.adapters import Bot, Eventcalculator = on_command("计算", priority=Config.priority)
@calculator.handle()
async def handle_first_receive(event: Event):msg = str(event.get_message())

此时获得的msg是1+1

但是,在升级后的nonebot2.0.0b5版本,获得的是msg将会是/计算1+1,即完整的原始信息内容。
如果仍然需要和之前一样只获得1+1的msg,则需要换成新的写法:

from nonebot.adapters.onebot.v11 import Message, MessageSegment
from nonebot.params import CommandArgcalculator = on_command("计算", priority=Config.priority)
@calculator.handle()
async def handle_first_receive(msg: Message = CommandArg()):msg = str(msg)

对于on_message类型的非命令字符串响应,仍然可以兼容之前的写法,小心别顺手把它们也一起改掉,导致了出现新的bug。别问我怎么知道的,也别问我发生了什么

此外,新版本还有很多新特性,具体的请查看相关文档:https://v2.nonebot.dev/
同样感谢交流群内的好心大佬们给予了很多关键的指点。

nonebot2聊天机器人插件10:迁移至nonebot2.0.0b5相关推荐

  1. nonebot2聊天机器人插件5:加群退群通报与退群次数记录join_and_leave

    nonebot2聊天机器人插件5:加群退群通报与退群次数记录join_and_leave 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 读取加群退群信息 3.2 数据库操作 4. ...

  2. nonebot2聊天机器人插件9:定时提醒器timing

    nonebot2聊天机器人插件9:定时提醒器timing 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 定时器 3.2 调用bot的api发送消息 4. 代码实现 5. 插件配图 ...

  3. nonebot2聊天机器人插件4:群聊与戳一戳响应chat

    nonebot2聊天机器人插件4:群聊与戳一戳响应chat 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 随机触发 3.2 返回随机信息 3.3 禁言用户 3.4 json转换 3 ...

  4. nonebot2聊天机器人插件3:计算器calculator

    nonebot2聊天机器人插件3:计算器calculator 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 将字符串作为代码执行 3.2 正则过滤 4. 代码实现 5. 插件配图 ...

  5. nonebot2聊天机器人插件1:基础应答print

    nonebot2聊天机器人插件1:基础应答print 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 4. 代码实现 5. 插件配图 6. 实际效果 7. 下一个插件 该插件涉及知识点:无 ...

  6. nonebot2聊天机器人插件7:随机角色卡mist_star

    nonebot2聊天机器人插件7:随机角色卡mist_star 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 遍历目录下所有文件 3.2 自定义属性文本格式 3.3 自定义异常报错 ...

  7. 【聊天机器人插件】Tidio与SaleSmartly:谁更适合你的网站?

    随着跨境电商行业的迅速发展,相应为网站配套的各类插件也不断被推出,比如可提供24小时自动回复的智能聊天机器人. 最近,一个外国团队就聊天机器人插件,对消费者开展调查问卷,得出了以下结论: l 可有效解 ...

  8. 体验VMware Converter Client 6.2与Veeam BR 10迁移ESXi 6.0 vm到vCenter 6.7 u3

    体验VMware Converter Client 6.2与Veeam BR 10迁移ESXi 6.0 vm到vCenter 6.7 u3 https://www.charflower.com/?p= ...

  9. 【独立站运营】5款绝佳WooCommerce聊天机器人插件

    使用WooCommerce经营商店时,你最喜欢的是什么?免费插件?漂亮的商店主题?还是配置使用的方便? 以上所有都是为了完成同一个目标--以最小的努力创建一家专业商店. 现在,你可以添加一个WooCo ...

最新文章

  1. jca分析java dump日志
  2. Exchange server 2010脱机工作簿故障问题
  3. Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)
  4. 27/100. Intersection of Two Linked Lists
  5. 操作系统文件系统实验_现代电脑操作系统原理课程,案例:Apple 操作系统技术演进...
  6. 【Flink】改进的BLOB存储架构
  7. python3的encode()和decode()
  8. 最最简单的一个爬虫代码
  9. 经济管理学中常用的模型分析法
  10. 代码时间换空间以及空间换时间
  11. 计算机密码怎么重置,电脑忘记密码了怎么重置密码
  12. git 代码行数统计
  13. ERROR: Check hive‘s usability failed, please check the status of your cluster问题解决
  14. 这些MOS管的特点和分类,你未必全都知道
  15. Lottie 免费动画、在线预览
  16. 自定义NDK交叉编译链(toolchain)
  17. 腾讯游戏人生 android,腾讯游戏
  18. 假期福利! 经典O'Reilly图书免费送, 搞懂DApp生态就靠它了!
  19. tiktok广告推广怎么能精准展现?什么行业适合在tiktok投放广告?
  20. ubuntu 外接VGA显示 不能调整为正确的分辨率

热门文章

  1. 如何变成一个有趣的人
  2. 艾永亮:谁说看视频就得开会员,真正好的视频平台,都向B站看齐
  3. casio计算机如何算函数,卡西欧计算器如何计算cth函数?
  4. 弹性地基梁计算程序 注册机_理正岩土弹性地基梁分析软件
  5. Xmanager远程连接Linux系统图形界面详解
  6. Xmanage远程连接Linux常用命令与常见问题(整理)
  7. C/C++ HOOK 全局 API
  8. ubuntu下ccv库配置及DPM等算法demo
  9. fultter项目运行报错,Android不兼容问题
  10. 微信小程序实现滚动吸顶