耗子成功的复活了噗噗!

序言

好久没有更新网站了,虽然mission日记一直在更新,但是只更新了内容没有更新时间,就导致mission日记的时间还是2022年。这次更新是因为前段时间阿里云的服务器到期了,把服务器换到了腾讯云,然后套了层cf解析。看着光挂不增的网站,就想再更新点东西。碰巧前段时间由于某些原因,让我起了继续玩bot的想法,于是重新开始研究bot。想着可以复活噗噗,继续愉快的“每日运程”。

之前也尝试过复活噗噗,那好像是qq刚开始封禁bot的时候,使用之前的vnc方法已经不能正常登录了。由于是模拟移动服务端,所以会遇到以“不处于同一网络环境下”的限制问题。而现在则是采用qqnt这个新版客户端,相比来说更加方便(只是在QQNT的客户端上改了改以实现某些功能,类似于魔改客户端吧)。

下面就来详细的说一说噗噗的复活路径吧。


开始

首先我是直接在Google搜索的qq bot,找到了chatgpt-mirai-qq-botmirai两个版本,由于chatgpt版本的具有多平台的功能,于是就使用了chatgpt版本进行安装。

首先使用了Linux一键脚本安装方式进行安装,当时的环境是Centos宝塔面板(对!宝塔面板!咋滴!),正好更新后的面板附带了管理docker的面板,省去我好大的功夫去学习docker(群晖上我也是使用群晖的docker面板,仍然不会手敲)。装上后发现不会设置,就更不用谈使用了。(在这里漏了个重要设置,但是由于都是依赖go-cqhttp,所以结果是一样的)Onebot无法正常运行,使用windows版本想要复制参数过去发现chatgpt是必选项,但我的计划里没有使用各类文本生成器的计划,于是就没有继续往下研究,直接卸载了此版本。


第一次复活

之后Lily向我推荐了koishi,由于docker整不太明白,我就使用了linux命令行的方式安装,但它提供的是.Appimage格式……由于没有图形化界面无法启动。无奈只能拉取koishi的镜像,使用docker。而koishi的界面提供了两种docker方式。(大概可以这么说吧?如果有问题欢迎联系我指正)

  1. podman
  2. docker

第一次创建docker容器的时候使用了bridge网络,后来发现这个坑货阿里云(又用学生优惠白嫖了另一个阿里云学生机)在机子内又套了一层网络,既宝塔面板读取到的ip是127.0.0.1的机内地址,而不是公网地址。这就导致它和docker的网络关系较为复杂,而且我参照网上的联通方法也没有成功……于是我删除后使用host网络又创建了一次,方才解决这个问题。

但由于才疏学浅,依旧使用的Onebot(go-cqhttp)方式登录,这次参照旧koishi的教程,成功配置了go-cqhttp的配置(使用正向WebSocket),并使用安卓手表扫码登录的方式成功登录,当晚耗子在群里喜大普奔的宣告了这一好消息,于是众群友开始愉快的算命,并由丁宝给耗子颁发了奖状。奖状当晚群友其乐无穷也。

可惜好景不长,第二天耗子发现噗噗居然没响应了,打开控制台发现已经被列为管控无法发送消息,但是使用手机qq登录仍可以正常发送消息。于是去网上搜寻各种方法企图复活噗噗。包括但不限于以下几种。

  1. 修改device信息
  2. 修改设备类型
  3. 修改qq密码
  4. 开启设备锁
  5. 使用密码登录
  6. etc.

均不能正常登录,于是第一次复活宣告失败,耗子开始寻找其他复活方向。(在寻找下一个方法前又复活了一小会,重新生成了一个device信息,坚持了一小会就又挂了)

第二次复活

第二次复活是看到了最新教程中有接入官方qq bot和微信公众号的教程,想着既然可以两端都搞那就同步一下吧。

首先是qq bot,根据教程去注册了开发者账号,并创建了机器人。此时嘛也不懂的我开始了开发者界面的艰难摸索之路。私域和公域机器人的区别、白名单的设置、还有qq频道的使用。最后发现了目前还未开放qq群机器人的申请,也就是说目前申请的qq机器人只能在qq频道中使用……那也行啊!起码复活噗噗复活一半了。等以后开放了qq群的权限再迁移过去就行了,于是开始设置机器人,研究指令。提交申请。趁着等待qq申请的时间,又去研究了一哈企业微信的使用,但是做到一半感觉不太对劲,企业微信的bot只能给企业内部的人使用,而切换到微信公众号后发现也不是很对劲,公众号不能加入群中,只能简单的每日运程,不太符合个人当时的期望。

研究完这个,qq bot的审核也下来了。不通过呜呜呜,官方给的建议是机器人功能简单,简易添加更多的功能。而我有啥功能可添加啊……这可愁死我了……于是第二次复活基本宣告失败。

后面我突发奇想了一下,我手头有个之前的手机是登陆过机器人qq的。

  1. 而koishi是有一个安卓手机app,它是否是直接调用手机qq来进行对话?也就是只要手机qq登录后就可以使用koishi了。
  2. 如果我吧device的数据全部改为那个手机的数据,那是否就可以视为是那个手机的登录,也就不会触发风控风险。

基于以上两种考虑,我开始同时进行两个方案的测试。不过最终结果不太尽如人意,两个方案都失败了。

安卓app失败的原因是,它只是装了个koishi,并没有调用手机qq,所以和电脑安装没有区别。只是为安卓端提供了一个作为服务器的机会。而改数据失败的原因……虽然我不知道能不能行得通,但是我无法获取device内需要的全部数据。于是两个方法都失败了。

最终复活

就在我心灰意冷,准备放弃复活噗噗这个计划的时候,Lily(没错!又是他!我永远的神!)再次向我提出了一个方案。使用nonebot/adapter-red进行接入,然后再跑一个docker运行QQNT。(甚至有群友让我雇一个印度人是什么鬼……还有让我搞一个机器视觉的进行图像识别……emmmm 我要能那么干哪还用得着这么费劲啊!)

大致扫了眼安装教程后耗子决定更换为windows server进行搭建(得益于阿里云的更换系统盘服务,服务器想用啥就用啥~妈妈再也不用担心我卡脖子了!)。

个人认为这个的好处就是使用了QQNT作为信息发送端,不会被官方进行检测,同时使用插件屏蔽完整性检查就可以正常使用了!

跟着教程走完后发现仍然可以使用koishi,于是又开开心心的下载了koishi windows端,安装并使用。但由于机子太新,大概是缺少环境,koishi打开后无法运行ui界面,一开始认为内存过低,又将2G内存升级成了4G,发现还是不行,又怀疑是端口未开放,将端口打开后仍然无法打开。最后脑子一抽在浏览器中输入了ui地址,成功进入……后经询问群友,群友表示可能是未安装”VC_redist.x64.exe”。但由于已经解决问题,便未继续研究。

目前状况

到目前为止bot已经平稳持续运行了4天,在昨晚经过三天的试用,服务器和噗噗均没有问题,于是又增添了一些插件来丰富噗噗。只不过还没有写鉴权部分。总的来说过程是曲折的,但结果是好的!
后期如果迁移可能会考虑迁移至外面的服务器,毕竟出去就可以连接至tg等,更加的方便!

最后附一张噗噗近日的数据吧!

近日数据

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

请我喝杯咖啡吧~