关于道无涯的QQ机器人

前言

经常有群友问我的QQ机器人用的啥框架,如何搭建、使用等,于是作下此篇文章。

  • 机器人使用的是 OpenShamrock ,一个基于 Lsposed(Non-Riru) 实现 Kritor 标准的 QQ 机器人框架。
  • 很遗憾的是,作者在今年9月(2024.9)已经停止维护此项目了,留存了一些bug没有被修复(经我测试,已知的bug例如上传群文件会奔溃)。但大体无关紧要,而且有能力的还可以自行查看源代码进行适配修复
  • 关于Lsposed,一种运行在 Android 系统上的 Xposed 框架变体,主要用于模块化地修改应用行为或系统功能,而无需修改原始的应用或系统代码,有刷过机的朋友一般都知道这东西
  • 因此,这个QQ机器人框架和其它框架最大的区别就是,它是运行在 安卓机 上的,基于HOOK实现的一些相关QQ机器人接口
  • 如果你不懂编程则不推荐使用,因为基本没有现成的对接代码,要编写全套代码去对接机器人,
  • 根据 OpenShamrock接口文档 编写对接代码,所以你至少需要懂得HTTP协议相关知识

如果你想拥有一个这样的机器人,但困于编程知识储备不足,可联系 道无涯 按需定制,具体可移步 软件|源码定制

基本图示

简述搭建与使用

  • 事先需要准备一部安卓机,需要刷机过且已安装Lsposed框架,因为机器人相关功能被开发成Xposed模块,需要基于Lsposed去运作
  • 安装 OpenShamrock 并在Lsposed中启用,作用域是系统框架与QQ,勾选后重启系统
  • 根据接口文档编写对接代码,接口支持Http和Websocket
  • 将对接代码部署到本机(推荐),如果不部署到本机也可以部署到局域网的其它设备,例如电脑上。我一般的话,开发的时候方便调试就部署在电脑,实际用的时候直接部署在本机
  • 那么,如何部署在本机?我是用的是Linux Deploy,当然也可以选择termux。需要记住部署的端口,注意启动的ip地址最好设置成127.0.0.1,不要用ipv4
  • 我全套写的是Http协议,设置的回调端口是1234,而我是直接部署在本机。故在模块的设置页面我需要设置回调的HTTP地址为:http://127.0.0.1:1234
  • 不建议用ipv4地址,因为用127.0.0.1的话即使换个网络,比如切换数据也能直接使用,而无需再修改ip地址
  • 模块设置页面还需要把 HTTP回调 的开关打开;强制平板模式 开关也可以打开,方便多端登录
  • 至此,整个流程完成!

具体运作

  • 我感觉我玩的挺花的,毕竟目前还没有人像我这么结合地去搞机器人
  • 我用的方案是:Linux Deploy+Tasker+OpenShamrock

Linux Deploy

  • 用于在 Android 设备上快速部署和运行完整的 Linux 操作系统环境
  • 主要用于部署已经编写好的对接代码,如果不想直接部署在安卓机上,也可以选择部署在局域网的设备上
  • 在Linux上安装个宝塔面板,无论你的对接代码是Java、Python、Php、Node.js等都能快速部署
  • 我是用Node.js写的,在宝塔的Node版本管理器上安装个稳定版的Node.js,再安装下PM2模块去启动项目即可,PM2会自动守护应用进程,当应用崩溃或异常退出时,自动重启以保证服务持续运行
  • 不能部署到云服务器上,除非再内网穿透,不过这样只会更麻烦,非常不建议
  • 故推荐直接在本机上部署,这样即使外出了,只要有网络,机器人也不会噶

Tasker

  • 一款功能强大的 Android 自动化工具应用,允许用户通过设定任务和触发条件,自动执行任务
  • 这东西我高中的时候就在玩了,是真的好用,用它去触发定时任务
  • 定时任务为什么不用cron或者schedule库呢?因为这始终不是运行在真实服务器,是运行在容器里的,如果手机息屏了,容器的活动就可能被限制了,定时凌晨4点的执行可能会到七八点才触发,甚至到亮屏才触发
  • Tasker的存活能力很强,能在我用过的应用中排第一,任务执行基本百分百准点,误差就几秒,即使手机是在完全息屏的情况下
  • 如何联动呢?在代码里编写好接口,在Tasker里定时执行http去触发这个接口
  • 下面是个使用示例
    由于我的服务器配置不太好,经常会死机,于是写了每5分钟检测一次服务器是否存活的代码配合Tasker,如果服务器挂掉了,机器人就会发送信息给我QQ大号提醒我重启下服务器

后台保活

  • 模块设置界面有个 免死金牌,可以勾选下。这样即使是手动都杀不掉,当然,我不习惯用这个功能,因为有时候我需要手动杀死QQ,某些功能才能生效,不然只能重启系统
  • 对于小米系统,有个 夜间休眠省电 的选项是默认开启的,需要关闭,否则夜间的时候机器人的运作会受到影响
  • 除此之外,应用权限里的 自启动 省电策略无限制 都可以开启

已实现的功能

  • 群里很多人问我机器人用的什么框架,但是我知道他们问的其实是机器人功能方面的实现
  • 用什么框架其实都一样,毕竟不会给你直接提供这些花里胡哨的东西(一些定制的框架除外),机器人框架只是提供了快捷发送与监听消息的基本能力
  • 具体的功能都是要自己去编写对接代码去扩展实现的,花里胡哨的程度还得看自己的想法

爬虫相关

  • 每日7点自动爬取某公众号文章的新闻发送至群聊
  • 每日12点、18点、21点自动爬取三个主流论坛的热点文章信息至群聊
  • 抖音视频解析去水印,在群内发送 抖音视频的分享链接 就会触发自动解析去水印并发送处理后的视频至群聊
  • 博客检索,在群内发送 /博客检索 指定关键词 就会触发自动发送道无涯博客包含指定关键词的文章至群聊

作图相关

  • 说明:用已经制作好的模板对QQ头像进行动图或静图合成
  • 触发方式:群里发送 作图 可获取触发指令

HttpBox工具

  • 说明:通过raw可一键生成Http协议代码,节省开发时间,方便程序员调试,支持八大平台
  • 触发方式:群里发送 /httpbox 可获取触发指令说明

群管理相关

  • 自动审核入群申请,人机验证
  • 每日0点自动踢出群最后发言末n成员
  • 自动监测(200+群聊)关键词(道无涯自用,接单先人一步[手动狗头.jpg])

AI问答相关

由于经费问题,没有对外开放,仅道无涯个人使用

  • 对接ChatGPT,使用AI进行知识问答。触发方式:群内发送 /ai 问答内容
  • 搭建知识库并投喂autojs文档数据,再对接AI,实现精确问答。触发方式:群内发送 /aj 问答内容

生图相关

由于经费问题,没有对外开放,仅道无涯个人使用

  • 对接ComfyUI,可进行图生图,文生图等

其它

可扩展的玩法太多了,暂时还没有什么新奇的玩法点子,有空了再开发补充~


作 者:道无涯
来 源:道无涯博客
链 接: https://www.daowuya.love/qqbot/
版 权 声 明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。文章版权归作者所有,未经允许请勿转载!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇