基于 Python 和 Onebot11 的QQ机器人开发——邀请链递归查询
发表于|更新于|QQbot
|总字数:0|阅读时长:1分钟|浏览量:
文章作者: W1ndys
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 W1ndysの小屋!
相关推荐
2024-08-09
docker部署GZCTF-QQBOT
环境要求 Linux 服务器 docker docker compose 开始部署 相关链接:MoRan23/GZCTF-BOT-QQ: GZCTF 对接的 qq 机器人,基于 NapCat+Nonebot 框架 (github.com) 进入 GZBOTGithub 地址,由于服务器对于 Github 的网络连接会偶然连不上,这里使用 docker-compose 部署,Github 的 README 写的很详细了,这里多说几点易错点。 下方监听的赛事名是 GZCTF 的赛事名,不是赛事序号或赛事 ID,赛事名叫什么就写什么,比如下图中的赛事名就是 W1ndys的bot测试 把下面代码参数改好后保存为 docker-compose.yml 123456789101112131415161718192021222324252627version: "3.7"services: napcat: image: mlikiowa/napcat-docker:latest restart: always ports: -...
2024-08-03
基于Python + OneBot 11的QQ机器人模块加载器的实现
源代码请看:W1ndys-bot/Module-Loader: 对接 OneBot 的 Python 模块加载器 (github.com) 对接 OneBot 的 Python 模块加载器 介绍及背景 Python 编写的模块加载器,使用 WebSocket 客户端模式对接上游服务,支持 OneBot 协议,如遇到问题请提 issue 本加载器不以插件的形式进行加载,而是以模块的形式进行加载。 这也就意味着,本加载器的功能增加,直接写代码即可,无需配置相关插件信息。 写这个加载器的原因是,了解到了 mf 师傅的插件式加载器,但我本人并不习惯这种方法,于是就写了这个模块式加载器,整个加载器的配置全部采用 Python 模块化编程,功能的开发模式完全基于原生 Onebot11。 有关插件式加载器的文档请参考:School-Robot/Plugin-Loader: 用于对接 OneBot 的 Python 插件加载器 (github.com) 加载器特色 模块化编程,易于维护 支持断线重连,无需手动重启 支持上线提醒(QQ),掉线提醒(钉钉) 支持 OneBot 11...
2024-07-28
基于 Python 和 Onebot11 的 QQ 机器人实现
开发背景 也是我与 QQbot 之间的羁绊吧,作者的一些碎碎念 久违了啊,老友,说不出的感觉涌上心头 😇 还记得那会是初中,忘了上几年级了,大概在 17 年左右认识了酷 Q,只能用别人的插件不会自己开发功能,学了一段时间苦于环境不会配置放弃了,后来 18,19 年左右认识了 QRspeed(-dic),基于关键词的词库程序,看着语法文档自己写出来一套(大概 4000 行左右吧)自己用的源码(严格来说应该叫词库称不上是源码),这是我第一次自己写自己想要的功能。但苦于 qrspeed 词库算不上真正的编程语言,所以一直拿不出手。后来因为寄宿学校,版本更新很快,逐渐跟不上了语法的变化了。 后来,晨风机器人作者喝茶,酷 Q 关站,qrspeed 也停运,受 tx 打压 QQ 机器人几乎死路一条。高中了解到 nonebot2,环境不会搭,放弃了上大学之后了解到 mirai,这是我第三个用了很久一段时间的机器人框架,可惜的是,我认识他的时候他就已经到寒冬了,随处可见的 code = 45,封过 n 次的 QQ 号…不过我依旧想自己开发自己想要的功能,由于 mirai 基于...
2024-08-15
基于 Python 和 Onebot11 的QQ机器人开发——JSON消息的发送(消息段数组的运用)
什么是消息段数组 请看 onebot11 官方文档 onebot-11/message/array.md at master · botuniverse/onebot-11 (github.com) 以前我都是直接发的 CQ 码(什么是 CQ 码?onebot-11/message/string.md at master · botuniverse/onebot-11 (github.com)) 今天突发奇想的想试试直接发推荐卡片,当我尝试发 CQ 码的时候失败了,然后我去找 NapCatQQ 开发者拾雪问了一下,大佬是这么说的,不能直接用 CQ 码,因为涉及到签名等东西,需要用扩展接口,让我去看文档。 去文档找了一下,确实找到了,我本以为能顺理成章的解决问题,但是不出意外的话出意外了。 下面内容基于 Python 和正向 Websocket...
2024-08-07
基于 Python 和 Onebot11 的QQ机器人开发——Python常用语法
背景 在写机器人的过程中不可避免的碰到语法的学习,本页梳理了常用的语法,以及记录开发机器人以来遇到的各种问题,需要注意的点。 。 函数调用 尽可能的分离函数,让某特殊功能的函数单独定义,以便于反复调用 异常处理 每个函数中尽量都要有异常处理,好处一个是方便快速调试报错点,第二个就是不会因为异常导致程序退出。 更详细的内容可以看 Python 异常处理 | 菜鸟教程 (runoob.com) 12345678try:<语句> #运行别的代码except <名字>:<语句> #如果在 try 部份 引发了'name'异常except <名字>,<数据>:<语句> #如果引发了'name'异常,获得附加的数据else:<语句> ...
2024-08-24
基于 Python 和 Onebot11 的QQ机器人开发——对websocket响应消息的分离处理
前言 一直以来 websocket 相应消息的接收都是有问题,之前想过很多办法,包括设置 sleep 等待,设置标志等的来分离 recv 来处理正确的响应,但是始终都没成功,这次改变了一下思路成功了 修改前 1234567891011121314151617发送群消息并获取消息 IDasync def send_group_msg_with_reply(websocket, group_id, content): try: message = { "action": "send_group_msg", "params": {"group_id": group_id, "message": content}, } await websocket.send(json.dumps(message)) response =...
评论
公告
Easy-QFNU重做中Easy-QFNU,欢迎访问!'
'如果访问存在问题,请 Ctrl + Shift + R 强制刷新页面,如果可以的话手动注销本站 Service Worker 应该可以解决大部分问题
'如果访问存在问题,请 Ctrl + Shift + R 强制刷新页面,如果可以的话手动注销本站 Service Worker 应该可以解决大部分问题