mage234 / wechat-user-bot

正在组装中的微信机器人

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

组装中的机器人

注意: 这只是个组装中的机器人,作者还在探索。详细协议分析见web 微信与基于node的微信机器人实现

``我认为,保持计算机科学的趣味举足轻重。这一学科在起步时让人乐不可支。当然,那些付钱的客户们时常会觉得被我们敷衍了。之后,我们开始信以为真。我们开始觉得,自己真的像是对成功地、无差错地、完美地使用这些机器义不容辞。我不以为然。我认为我们的责任是去拓展这一领域,将其发展到新的方向,并在私底下保持趣味。我希望计算机科学领域绝不要丧失其趣味意识。最重要的是,我希望我们不要变成传道士,不要认为你是兜售圣经的人,世界上这种人已经太多了。你所知道的有关计算的东西,其他人也都能学到。绝不要认为成功计算的钥匙只掌握在你的手里。我认为并希望,你所掌握的是智慧:那种当你第一次站在这一机器面前时就能看到它的本质的能力,这样你才能将它推向前进。''

Alan J. Perlis (生于1922年4月1日,卒于1990年2月7日) 从SICP摘抄

作者仅仅为了:

  1. 自己想要一个能进行信息收发的某国内顶级IM机器人。
  2. 熟悉Node的http/https request 等模块,学习HTTP基本知识。
  3. 学着Promise怎么使用,如果可以Stream如何玩,这么比较好的抽象整个流程
  4. 学习使用浏览器调试工具,https代理等等。甚至透明代理,iptable这种东西。。
  5. 抽象

最重要的是:

  1. 好奇
  2. 聊以自娱

所以,这是一堆混乱不堪的东西,希望各位老师教我做人。

概览

基本上是这样,长连接一旦断开(服务器返回(服务器会在超时前返回)或者网络问题),继续长连接:

登录->长连接->长连接...(无尽的长连接来保持服务器能及时推送新信息)

根据长连接返回信息,如果出现服务器如果需要更新

webwxsync->filter->transducer

像js这种异步程序,当你长连接保持时并不会阻塞其他操作的执行。异步大法好!

依赖

如果不使用linux分支,需要imagemagick:

sudo apt-get install imagemagick

终端支持unicode字体:

sudo apt-get install ttf-ancient-fonts

使用须知

不好意思,Mac下需要你自己折腾让imagemagick能支持管道流数据。 据我所知,brew 默认安装的imagemagick并不行

请为了学习和娱乐适量使用,因此造成的任何损失、影响,都由使用者自行承担,与作者无关。源代码遵循GPL v2。

使用方式

git clone https://github.com/HalfdogStudio/wechat-user-bot.git wechat-user-bot && cd wechat-user-bot
npm install
CURRENT_CASH=1314 node index.js

调试请求:

CURRENT_CASH=1314 DEBUG=info node index.js

扫描二维码确认登录。

目前是个聊天和记录机器人,对话引擎默认为重复(echo),可指定其它引擎。

捐赠

如果您觉得这些东西对您有用,请支持自由软件基金会

截图

登录

登录

运行

截图

ChangeLog

2016.4.24

  • 实验性的多媒体文件上传接口实现
  • 默认记账机器人

2016.3.9

  • 表情信息记录
  • 重写media api
  • 重构、清理和日志

2016.2.11

  • 重新组织代码
  • 分离请求和逻辑处理
  • 图像信息记录

2016.2.9

  • 更新web示例
  • 分离display

2016.1.31

  • 将消息过滤和处理分离到入口程序中
  • 滥用高阶函数特性

2016.1.26

  • 分离逻辑与重构

2016.1.20

  • 更加健壮的对话引擎
  • 非好友用户名解析与缓存

2016.1.19

  • 群成员信息缓存
  • 消息过滤机制
  • 过滤特殊用户

2016.1.18

  • 重构消息处理逻辑

2016.1.17

  • 群组发信人用户名解析
  • 智能关闭二维码图像窗口

2016.1.15

  • 清理协议相关程序

2016.1.14

  • 实现登录长连接 #8
  • 分离替换api

2016.1.13

  • 重新实现长连接,修复多条消息会重新出现的问题 #5
  • 分离回复逻辑 #2
  • 捕获服务器断开消息自动退出 #1

2016.1.12

  • 修复遗漏消息的问题
  • 接入图灵机器人实现聊天机器人
  • 清理代码
  • 完成用request替换所有原生模块

2016.1.11

  • 完成基本的回复机器人功能。

About

正在组装中的微信机器人

License:GNU General Public License v2.0


Languages

Language:JavaScript 100.0%