程序员或许只是一份工作,编码或许是为了生存,但是归根结底,我们为什么要写代码?
有没有⼀种可能,在我们的日常工作生活中,代码的初衷就是为了提升工作作效率,减少不必要的重复!
今天我们主要聊的是代码如何实现⾃动化机器人。
# 写在前面
还记得我上⼤学的时候,和朋友们⼀起玩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脚本篇
· 基地树洞 | 自动化小系列之浏览器篇
· 基地树洞 | 一招让学习规划不再繁琐