• 基地树洞 | 自动化小系列之番外篇


    程序员或许只是一份工作,编码或许是为了生存,但是归根结底,我们为什么要写代码?

    有没有⼀种可能,在我们的日常工作生活中,代码的初衷就是为了提升工作作效率,减少不必要的重复!

    今天我们主要聊的是代码如何实现⾃动化机器人。

    #  写在前面 

    还记得我上⼤学的时候,和朋友们⼀起玩minecraft游戏的私服,当时有⼀个操作让我很惊艳就是服主实现了同步游戏聊天和QQ群聊天,即游戏内和QQ群内消息互通,⽽且还能通过将某个群成员设置成机器⼈与我们互动,惊掉了我的下巴。

    #  回顾历史 

    我当时就因为这个,开始了我的好奇探索之路。

    后来,我开始在搜索关于聊天机器人的解决方案。通过在网上的调研搜索,发现了⼀些可以直接使⽤的软件,就比如当初我的最爱酷Q机器⼈(现在已经“凉了”)和微信的wxpy库(也“凉凉”了),直接帮助我实现了DIY消息回复,让我在⼤学时期斩获不少粉丝。

    在很早的时候,腾讯出过⼀个web应⽤叫做网页QQ,我觉得应该有不少⼈还记得吧,在这个网页QQ的基础上,各式各样的QQ机器⼈诞⽣了。

    很多QQ机器⼈都是通过这个来实现了http消息的拦截、过滤与转发。(关于http我就不过多介绍了...)

    后来,网页QQ暂停服务了,导致很多机器⼈就凉了,⼤家为了解决这⼀问题,开始了各⾃的探索。

    有些⼈就做了插件,实现了将QQ的信息转换成http的形式,这样,我们又可以愉快地进行玩耍了。具体实现细节还是比较麻烦的,这里不再赘述。

    这和我们今天的自动化有什么关系呢?

    当然,有了这种思想,我们是不是可以实现很多收发消息的⾃动化?比如我们想通过QQ或微信做⼀个互动备忘录?通过QQ或微信群做⼀个签到服务?

    基本上,QQ小冰能实现的功能我们都可以实现,甚至我们可以DIY做到任何功能。

    每天⾃动给女神发早安?每天⾃动汇报天⽓预报?甚⾄⾃动客服我们是不是也可以做呢?......

     / 图片来源网络 / 

    这不就是商机吗?

    #  实战案例 

    前⾯我们说到,很多机器⼈都已经“不复存在”了,那现在还有什么可以玩的项目?去年,我在github上发现了⼀些很给力的开源项⽬,所以今天咱们来聊聊这个项目怎么实现自动化的。

    我最开始发现的是⼀个叫 go-cqhttp 的开源项⽬(有需要⾃⼰搜索即可),它实现了HTTP API、反向HTTP POST、正向Websocket、反向WebSocket

    我当时还在那⾥用java写socket,直到我发现我的消息只能收不能发,研究了3天无果后,我开始到处加群寻求帮助,告诉他们我在正在进行网络编程,我甚⾄想暗示他们我很厉害,我要自己在上面定制化开发。

    可我终究是高看了自己,我果然还是一个小菜鸡,经过大佬们的“点拨”后,我才知道,原来早已经有各路神仙把这玩意做成了框架,有些直接⽤springboot导⼊starter就好。

    有些⼈甚至有自己的框架,自己实现了IOC容器,开源项目大佬就是牛,我是真的学到了很多,也是从那时候,我也坚定了⼀定要自己做开源的信念。

     / 图片来源网络 / 

    随后,我就开始了正式的机器人实践了,使⽤mysql做数据库,将服务部署到我的服务器上面,运行了大半年了,也是比较稳定的。我也按照三层结构,controller,service,dao做了简单分层。

    我依赖的开源项目名称叫simbot ,我相信,如果你会java的话,通过入门文档,你能轻而易举的上手这个项目。

    我的项⽬由于个人原因不能开源,不能给大家参考我的代码,不过大家可以加⼊他们官方的QQ群进行讨论学习。

    关于我的项⽬,就浅浅的看下:

    #  说在最后 

    这篇文章章就是咱们⾃动化的最后⼀篇文章了,感谢大家的支持!

    如果我的文章你看过的话,这些思想应该够解决90%的生活中的问题了吧,真的希望能对大家有所启发,有所帮助。

    生活不停,思考不止,就到这啦~

    ---------------------------------------------------------  我是分割线  ------------------------------------------------------

    关于“自动化”更多分享内容集合⬇⬇⬇

    · 基地树洞 | 自动化小系列之整合篇

    ·  基地树洞 | 自动化小系列之OS脚本篇

    ·  基地树洞 | 自动化小系列之浏览器篇

    ·  基地树洞 | 一招让学习规划不再繁琐

  • 相关阅读:
    【数据库】数据库连接池导致系统吞吐量上不去-复盘
    《微信小程序》初识微信小程序
    如何使用代码来构造HTTP请求?
    初识JVM
    032:vue中三元运算, style、class、type、 event等多种场景示例
    【LLM教程】为什么做大语言模型fine tuning时,要将 drop_last_batch设置为True?
    全国程序员高考卷曝光,你能答对几题?
    MySQL-HMA 高可用故障切换
    Docker-CentOS开启防火墙firewalled映射Docker端口
    谷粒商城-商品服务(平台属性)
  • 原文地址:https://blog.csdn.net/CBGCampus/article/details/127958280