我是这样使用微信的——wechatircd最近更新

既然你诚心诚意地问了,我就大发慈悲地告诉你~

最近给wechatircd(让IRC客户端控制微信网页版,收发文本图片、邀请删除群成员、添加朋友请求等)做大手术,折腾了很多东西……可以看这段视频以及最新的README.md

  • server建立和微信网页版的绑定,而不是之前的client登录后和网页绑定
  • 全面修缮多clients支持,多个clients可以操作一个微信个人帐号,可以外接bot
  • 命令行选项--irc-nicks ray ray1,给客户端保留的nick。防止微信用户占用这些名字
  • 新的join mode:--join new。收到某个群第一条消息后自动加入对应的channel。WeeChat里/close命令关闭窗口会自动/part。原来的--join auto是收到/part命令后,收到消息不会重新加入。
  • 现在通过设置channel mode来防止自动JOIN一个恼人的微信群:/mode +m
  • /motd,查看本repo最近5个commits
  • /squit $any,log out微信网页版
  • 微信朋友带有mode +v (voice, 通常显示为前缀+)。IRC客户端nicklist里把这些nick会用前缀+显示。SpecialChannel#update_detail
  • nick0: nick1: test会被转换成@GroupAlias0 @GroupAlias1 testGroupAlias0 是那个用户自己设置的名字,不是你设置的Set Remark and Tag,对应移动端的On-screen names
  • 回复12:34:SS的消息:@1234 !m multi\nline\nreply,会发送「Re GroupAlias: text」text
  • 回复12:34:56的消息:!m @123456 multi\nline\nreply
  • 回复朋友/群的倒数第二条消息(自己的消息不计数):@2 reply
  • 粘贴检测。PRIVMSG行会被延迟0.1秒,期间发送的所有行会被打包成一个多行消息发送
  • !m, @3, nick:可以任意安排顺序。
  • IRC 3.1 3.2的server-time,让客户端显示消息时和服务器收到的消息的时刻一致。
  • 订阅号文章统一由BrandServ虚拟用户发送
  • -c/--config可以接配置文件(代替命令行选项)
  • --irc-nicks ray ray1保留给IRC客户端用的nick,不会被虚拟的微信用户占用

对于WeeChat,默认的anti-flood机制会让发出去的两条消息间隔至少2秒。禁用该机制使粘贴检测生效:

1
/set irc.server.wechat.anti_flood_prio_high 0

如果想用这种方式操作Telegram,请移步https://github.com/MaskRay/telegramircd 我的WeeChat配置参见WeeChat操作各种聊天软件

去年折腾这个就是嫌微信操作麻烦,这两年各种微信bot方案层出不穷,比如最近活跃的https://github.com/wechaty/wechatyhttps://github.com/littlecodersh/ItChat/,我更喜欢的还是sjdy521的https://github.com/sjdy521/Mojo-Weixin,也提供了一个IRC插件(可惜我自己有很多其他需求,这个项目IRC插件部分比较简单)。然而他们从头实现微信网页版协议,代码量巨大……我不懂这些前端技术,也没有足够精力持续拥抱微信网页版变化,最初无奈下载源码后加一些自己的patch,演化到现在抄electronic-wechat注入angular,用Userscript来驱动。目前injector.js只有600多行,很大一部分是从微信网页版挖出来的。

对于黑客来说,有这么一条铁律:从头开发个软件只是小儿科;要想在别人面前展现自己的聪明才智(并让别人对自己留下印象),就得做点更有意思的事:改进一个程序让它体积更小、跑得更快、功能更强,代码更优雅,这才是真本事。——《若为自由故:自由软件之父理查德·斯托曼传》

现在支持多客户端后,可以一边用IRC聊天,一边用一个bot自动化一些操作。IRC bot非常多,如Sopel等,能找到丰富的玩法。

另外,建议使用README.zhs.md中提到的headless浏览器方案,可以避免每日扫码。

  • 创建一个新Chromium profile:chromium --user-data-dir=$HOME/.config/chromium-wechatircd,配置浏览器(injector.js用的证书, Tampermonkey, injector.user.js),关闭浏览器
  • 安装xvfb (Arch Linux里叫xorg-server-xvfb)
  • xvfb-run -n 99 chromium --user-data-dir=$HOME/.config/chromium-wechatircd https://wx.qq.com
  • 等数秒待QR码加载。DISPLAY=:99 import -window root /tmp/a.jpg && $your_image_viewer /tmp/a.jpg,截图后用移动端应用扫码

另一种方案是x2go,参见无需每日扫码的IRC版微信和QQ:wechatircd、webqqircd

讨论群:

祝wechatircd一岁生日快乐。就是这样,喵喵喵,喵喵喵~