UnsignedInt8 / wallchat

Keep WeChat messages but leave WeChat. This Telegram bot is here to release you.
Mozilla Public License 2.0
68 stars 9 forks source link
bot telegram wechat

WallChat

Powered by Wechaty

使用 Telegram Bot 收发 WeChat 文字、语音、图片、视频、Telegram 静态贴纸等消息

安装准备

  1. 安装 Node.js 12+ 官网: https://nodejs.org
  2. 访问 https://t.me/BotFather, 申请你的 bot token
  3. 安装 ffmpeg (可选,将 Telegram 语音(oga 文件)转换成 mp3 发送给微信)

快速开始

Linux 使用前需要安装如下依赖,新版 wechaty 只支持Ubuntu:

CentOS 7

yum install libX11 pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y

CentOS 8

dnf install -y libX11-xcb libXtst libXScrnSaver alsa-lib-devel at-spi2-atk gtk3

alsa-lib.x86_64 atk.x86_64 cups-libs.x86_64 gtk3.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXrandr.x86_64  pango.x86_64 xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-fonts-cyrillic xorg-x11-fonts-misc xorg-x11-fonts-Type1 xorg-x11-utils

// http://www.ajisaba.net/javascript/puppeteer/lib_error_centos7.html

Ubuntu

apt-get update && \
     apt-get install -yq --no-install-recommends \
     libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
     libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
     libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 \
     libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
     libnss3 libgbm-dev libxshmfence-dev

libgbm-dev libxshmfence-dev 是 2.5.0 版本新需要的依赖

自行编译

$> git clone https://github.com/UnsignedInt8/leavexchat-bot.git
$> cd leavexchat-bot
$> yarn
$> yarn build
$> node build/main/index.js # 无需配置文件
$> 输入 token, Done!

由于中国用户无法直接访问 Telegram,所以需要在配置文件 config.json 中指定 SOCKS5 代理:

config.json 请参照 config-example.json 填写。

# 使用配置文件方式
$> node build/main/index.js -c config.json

如果安装遇到问题,清空 node_modules,再重新安装所有依赖

作者的用法

2.0 版本已经加入了 wechat 会话恢复功能。要发挥该特性,就需要进程守护,推荐使用 forever

$> npm i -g forever

$> git clone https://github.com/UnsignedInt8/leavexchat-bot.git
$> cd leavexchat-bot
$> yarn
$> yarn build
$> forever build/main/index.js -c config.json

这样可以大幅降低扫码登录的频次

Bot 命令

命令 说明 示例
/start 启动会话
/login 请求登录
/logout 登出 WeChat
/groupon 开启接收群消息
/groupoff 关闭接收群消息
/officialon 开启接收公众号消息
/officialoff 关闭接收公众号消息
/selfon 开启接收自己的消息
/selfoff 关闭接收自己的消息
/find 查找联系人并设置为当前联系人 /find ABC
/lock 锁定当前联系人
/unlock 取消锁定当前联系人
/findandlock 查找并锁定为当前联系人 /findandlock ABC
/current 显示当前联系人
/agree 同意好友请求 /agree [reqid]
/disagree 忽略好友请求 /disagree [reqid]
/forwardto 转发消息给联系人 /forwardto [联系人]
/mute 静音指定群 先引用一条群消息, 再 /mute
/unmute 启用指定群消息 /unmute 群名[可不填,则启用全部群消息]
/help 显示帮助

除了 /find/findandlock 必须带有要查找的联系人名字,其它命令均可无参数

使用注意

  1. 根据 Wechaty 说明,2017 年 6 月之后注册的 Wechat 账号无法登陆网页版 Wechat,因此无法使用此 bot 代收消息 已经支持所有wechat账号登陆

  2. 为保证安全,bot 只会在自己的聊天记录保留最近 200 条消息 (默认 200)

  3. 直接在 Telegram 里回复消息的对象默认是最近收到消息的发送者(个人或群),如果担心回复错了,请手动指定回复某条消息(最近 200 条以内)。可以手动 /lock /unlock 锁定当前联系人

  4. 2.1.0 以上版本已经支持发送图片、视频、文档,但不支持发送可被 Wechat 自动识别为音频的消息

  5. 如果使用 VPS,WeChat 会检测到异地登陆,并发出提示。可以在本地运行该 bot,只需在配置文件里填写好 socks5, http 代理信息即可

Telegram Bot 快捷命令支持

命令说明在此处,粘贴到 BotFather 中即可启用 Telegram Bot 输入框提示

License

MPL-2.0