呼吸de艺术

Live in your world, get owned in mine

基于WebQQ协议的机器人-QQBot

| Comments

诞生

这是元旦期间做的工具,今天有点时间来博客宣传下。

如果你对自动化运维(部署)和团队建设方面有兴趣,先推荐个视频 Github的运维机器人hubot的介绍 , Hubot 在 Github 内部基本完全接管了运维方面的工作,重启部署,查看监控图表,这种在讨论组里的运维方式,对团队而言非常透明和直接,减少很多沟通和学习的成本。另外一方面就是非常简单的插件支持,这对于理解和使用扩展都降低了不少门槛。

后来因为Bitcoin的关系在某QQ群居然看到了群机器人,可以辅助群主自动清理刷屏用户,提供简单的QA比如各个市场行情。平静多年的内心突然骚动了起来,然后就写了这么个东西

QQBot

QQBot 是基于WebQQ协议的QQ机器人。命令行工具,由不可思议的CoffeeScript提供支持。
TA支持独立运行,也可以作为Hubot的Adapter直接享用海量的Hubot插件。

功能

  • 登录(支持验证码)
  • 监听并派发收到的qq消息,支持群,好友消息
  • 插件化,目前支持消息的派发
  • 可作为hubot adapter使用

项目和使用

项目地址 https://github.com/xhan/qqbot , 同时整理了个WebQQ的协议。具体使用和依赖也请见项目的README咯。

日志

这次开发试着将每个时间点的状态做了记录,挺有趣

2013.12.28

  • 19:43 搜索了下果然已有好多轮子,但几乎所有的都是闭源付费以及是基于win系统。所以决定测试下基于webQQ协议的可能性。
  • 20:13 有点急功近利了,直接用coffeescript编码有点搞不定的感觉。看会Coffee和node的语法和api
  • 21:18 基本语法和http测试完成 :smile:

2013.12.29

  • 10:23 昨晚一直卡在登录账户验证处,调试到凌晨终于通过登录验证的第一个环节。PS.使用coffee写代码还真是蛮清爽的
  • 15:07 去了趟医院,怎么就突然感冒咳嗽头晕了。成功搞定node http post以及获取到qq登录最后一步token。睡会会。
  • 19:43 发现了一款开源的webqq协议的win客户端MingQQ,看截图完成度相当高。对了增加了验证码的支持
  • 20:44 增加在线(轮训功能),进度比预期的慢了些。但又发现了些资料和文档,补充在底部。分离qqauth和qqapi

2013.12.30

  • 08:37 有了第三方的资料文档后进展快了不少,增加获取群信息,发消息接口,抽离了httpclient功能,分离测试脚本auth,api
  • 13:11 学习Coffee Class的简单用法,提供了QQBot对象来处理各种接口信息。现已支持简单的poll事件解析
  • 18:05 增加回复响应功能,同时写了个比较挫的插件机制,但是至少似乎运作的还算正常!后续得看下hubot的代码学习下设计

2014.01.01

  • 支持hubot,现已加入豪华午餐!
  • 增加独立运行的入口文件 main.coffee

Comments