用学习机制作的QQ机器人服务器【PS终于能发贴了……】

  • pokebox
  • LV2工程师
  • |      2014-10-21 00:46:27
  • 浏览量 1705
  • 回复:7
前言:今天【不对,现在应是昨天了】中午写了个帖子,发贴后居然消失了……oh……重写
 我试试回复……
为了得到树莓派,我迫不及待饥渴难耐的还是忍不住把我的珍宝挂出来亮一下,初中时就开始写的用在诺亚舟学习机上的QQ机器人。
现在已经相对比较完善了,但是由于学习机没有可以用的GPIO,所以我很希望能够申请到树莓派……故此,这篇帖子送上。
首先,因为我的学习机是基于Linux/Unix操作系统的,所以可想而知,可扩展性是很强的,特别是有了终端以后,简直是可以干任何事。所以在初中的时候因为当时我还没有手机,和别人联系都是用QQ邮箱,后来到用3G页面QQ。但是浏览器用3GQQ没法自动刷新【学习机上的浏览器,QT2的,官方自己编译的,没法改也没得扩展,能上网都不错了在那个年代……】怎么办?
后来我从一个易语言写的QQ客户端上得到灵感,于是利用bash脚本自己写了个自动挂Q的程序,在检测到消息的时候自动播放声音和弹出浏览器来聊天,暂时的解决了消息来我没法及时收到的问题。
后来也是闲的无聊,想用终端直接聊天,写着写着,就写成了自动回复消息的程序……
最初的程序就这样诞生了……
 
上面都是废话,这里才是重点……
这个程序完全是用bash脚本写的,利用wget命令下载3GQQ页面【下载其实也是一个上传命令消息的过程,就像你在百度搜索框输入一个关键词点搜索后,你会发现地址栏上就包含了你搜索的内容,而利用wget发送消息也是这个意思】
然后用grep、sed、awk等文本操作命令来获取需要的信息,比如聊天内容。
用bash写QQ机器人有什么好处?首先,bash是Linux操作系统的最基础命令行,也就是说所有的Linux/Unix系统都可以使用【最多只是命令行版本不一样导致参数用法不一样而已,自己稍加改动即可轻松实现移植】。而用QQ来做智能家居的话,相比物联网、微信等来说,好处就是客户端多,几乎所有的移动设备都可以用QQ,而微信只能在智能机上用,电脑都用不了……这就大大限制了使用的范围。物联网的话,貌似只有网页和智能机的客户端吧,而且限制也很多。所以用3GQQ写智能家居绝对是个创新。【哼,这个项目被我承包了╮(╯▽╰)╭】
 
那么,下面来晒点图吧……

更改服务器【学习机】上的时间……

为了证明这确实是在Linux设备上运行的,执行uname查看内核版本……

嗯,如果不记得怎么操作,可以查看帮助。上面由于学习机想要控制外部家电什么的还是比较困难,因为没有GPIO。所以基本上只是用来控制学习机上的服务。上面的开门其实是利用学习机+USB转串口模块和单片机连接,然后来进行操作的……

近期添加的语句学习功能,嗯,QQ机器人嘛,自然要在无聊的时候来点可以娱乐的东西。当然,如果语句和命令冲突的话自然是优先运行命令而不是闲聊模式。【其实这个功能好简单的,用case语句就可以实现了……】


由于贴代码会出问题,所以源码就不公布了……不然帖子都发不了……

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:6
阖家欢乐 2015-02-25
好厉害的东西
0   回复
举报
发布
刘佳文 2014-10-26
学习了        支持一下 
0   回复
举报
发布
思索天地 2014-10-21

顶你了  很期待你的作品呀

0   回复
举报
发布
pokebox 2014-10-21

既然直接贴代码会出问题那我就不贴了。其实程序我之前上传在了程序员开发网,需要的可以去下载。这个是学习机上用的,如果要用在其他地方需要自己修改。

http://www.pudn.com/downloads640/sourcecode/unix_linux/network/detail2592758.html

0   回复
举报
发布
pokebox 2014-10-21

前言:今天【不对,现在应是昨天了】中午写了个帖子,发贴后居然消失了……oh……重写

 我试试回复……

为了得到树莓派,我迫不及待饥渴难耐的还是忍不住把我的珍宝挂出来亮一下,初中时就开始写的用在诺亚舟学习机上的QQ机器人。

现在已经相对比较完善了,但是由于学习机没有可以用的GPIO,所以我很希望能够申请到树莓派……故此,这篇帖子送上。

首先,因为我的学习机是基于Linux/Unix操作系统的,所以可想而知,可扩展性是很强的,特别是有了终端以后,简直是可以干任何事。所以在初中的时候因为当时我还没有手机,和别人联系都是用QQ邮箱,后来到用3G页面QQ。但是浏览器用3GQQ没法自动刷新【学习机上的浏览器,QT2的,官方自己编译的,没法改也没得扩展,能上网都不错了在那个年代……】怎么办?

后来我从一个易语言写的QQ客户端上得到灵感,于是利用bash脚本自己写了个自动挂Q的程序,在检测到消息的时候自动播放声音和弹出浏览器来聊天,暂时的解决了消息来我没法及时收到的问题。

后来也是闲的无聊,想用终端直接聊天,写着写着,就写成了自动回复消息的程序……

最初的程序就这样诞生了……

 

上面都是废话,这里才是重点……

这个程序完全是用bash脚本写的,利用wget命令下载3GQQ页面【下载其实也是一个上传命令消息的过程,就像你在百度搜索框输入一个关键词点搜索后,你会发现地址栏上就包含了你搜索的内容,而利用wget发送消息也是这个意思】

然后用grepsedawk等文本操作命令来获取需要的信息,比如聊天内容。

bashQQ机器人有什么好处?首先,bashLinux操作系统的基础命令行,也就是说所有的Linux/Unix系统都可以使用【最多只是命令行版本不一样导致参数用法不一样而已,自己稍加改动即可轻松实现移植】。而用QQ来做智能家居的话,相比物联网、微信等来说,好处就是客户端多,几乎所有的移动设备都可以用QQ而微信只能在智能机上用,电脑都用不了……这就大大限制了使用的范围。物联网的话,貌似只有网页和智能机的客户端吧,而且限制也很多。所以用3GQQ写智能家居绝对是个创新。【哼,这个项目被我承包了(╯▽╰)

 

那么,下面来晒点图吧……

【不知道是不是图片的原因,决定不发图试试……】

【图片】

更改服务器【学习机】上的时间……

【图片】

为了证明这确实是在Linux设备上运行的,执行uname查看内核版本……

【图片】

嗯,如果不记得怎么操作,可以查看帮助。上面由于学习机想要控制外部家电什么的还是比较困难,因为没有GPIO。所以基本上只是用来控制学习机上的服务。上面的开门其实是利用学习机+USB转串口模块和单片机连接,然后来进行操作的……

【图片】

近期添加的语句学习功能,嗯,QQ机器人嘛,自然要在无聊的时候来点可以娱乐的东西。当然,如果语句和命令冲突的话自然是优先运行命令而不是闲聊模式。【其实这个功能好简单的,用case语句就可以实现了……

查看内存和显示临时目录里的文件……

 

下面为了证明可行性,我把之前写的代码贴出来~

#!/bin/bash
##2013年10月502:26:15 ####++ QQ机器人V1.6 ++####V6800
##VI2013年11月2100:17:09     ## By pokebox    #修复iconv转换出错导致卡死无法读取信息的错误
##VI2014年2月323:09:58       ## By pokebox    #修改信息发送方式,使用函数fsxx进行命令反馈发送
##VI2014年2月617:31:57       ## By PokeBox    #修复刷新时间的BUG,修改挂Q的方式,调用QQ提醒进行后台挂Q
##VI2014年6月300:01:45       ## By PokeBox    #添加远程开机代码和暂停服务功能
【提交也失败……说是包含危险字符……好吧,我不贴代码试试……】 


0   回复
举报
发布
pokebox 2014-10-21
不行,占楼发帖也失败了……修改后提示修改成功结果还是什么都没有……版主求解……这貌似是论坛bug
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子