Skip to content

Commit

Permalink
Modify: README_zh.md REANME
Browse files Browse the repository at this point in the history
  • Loading branch information
xleat committed Nov 28, 2024
1 parent 741c4df commit 22f5318
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 51 deletions.
35 changes: 22 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,28 @@ This project, based on [wechaty](https://github.com/wechaty/wechaty) , enables s

7. Voice-to-text conversion for WeChat voice messages.


## Supported Features

### Supported WeChat Message Types

+ [x] Text messages (emojis within text can be converted to Telegram emojis, but many mappings are not available)
+ [x] Non-official stickers
+ [x] Image messages
+ [x] Audio/Video calls (only message notifications)
+ [x] File messages
+ [x] Voice messages
+ [x] Message recall
+ [x] Link messages
+ [x] Mini program messages (partially supported)
+ [x] Location messages (converted to location text)
+ [x] Red packet messages (notification only, cannot retrieve red packet content)
+ [x] Group chat messages
+ [x] Group chat @ messages (@all and @you will be converted to Telegram @you)
+ [x] Official account messages
+ [ ] Store stickers
+ [ ] Messages sent by WeChat Work users

## Notes

1. This project is for technical research and learning purposes only and must not be used for illegal purposes.
Expand Down Expand Up @@ -192,15 +214,12 @@ npm start
Blocks WeChat emoji messages.


---


### Message Recall
Messages sent within 2 minutes can be recalled by replying `&rm` to the message.
Media messages must be successfully sent before recall.
If `API_ID` and `API_HASH` are configured, deleting a message will also recall it.

---

Obtaining `API_ID` and `API_HASH`
1. Log in to your [Telegram account](https://my.telegram.org/) .
Expand All @@ -210,8 +229,6 @@ Obtaining `API_ID` and `API_HASH`
3. Click **Create application** to generate the credentials.


---


### Handling Large Files

Expand All @@ -223,8 +240,6 @@ Due to Telegram Bot API limitations:
To handle larger files, configure `API_ID` and `API_HASH`.
**Note:** Web protocol testing shows uploads beyond 25MB may fail. This project includes a fix for this issue.

---


### Manual Message Grouping
**Important:**
Expand Down Expand Up @@ -252,8 +267,6 @@ Commands:
- `/cgdata`: Update group avatar and nickname to match the corresponding WeChat contact or group (requires admin permissions).


---


### Auto Message Grouping

Expand All @@ -264,8 +277,6 @@ Commands:
3. Use the `/autocg` command to enable auto-grouping mode, and follow prompts to log in to Telegram.


---


### Voice-to-Text Conversion

Expand All @@ -275,8 +286,6 @@ Commands:
2. Enable auto voice-to-text conversion in `/setting`.


---


### Custom Message Templates
You can modify message sender formats via Docker environment variables or the `.env` file.
Expand Down
96 changes: 58 additions & 38 deletions README_zh.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,48 @@
# [wechat2tg](https://github.com/finalpi/wechat2tg)

本项目是基于 [wechaty](https://github.com/wechaty/wechaty) 实现的在 Telegram 收发微信消息的项目
本项目是基于 [wechaty](https://github.com/wechaty/wechaty) 实现了在 Telegram 收发微信消息的工具

使用 [puppet-wechat4u](https://github.com/wechaty/puppet-wechat4u)使用了UOS协议),可以绕过某些账号微信 Web 版无法登录的限制。
使用了 [puppet-wechat4u](https://github.com/wechaty/puppet-wechat4u)UOS协议),可以绕过某些微信账号在 Web 版无法登录的限制。

## 主要功能

1. 微信单聊消息,微信群消息,公众号消息转发到 Telegram 机器人。
2. Telegram 向指定的微信用户、微信群、公众号发送消息。
3. 支持设置微信群组黑名单、白名单。
4. 支持从 Telegram 发送视频、文件、贴纸、图片、语音消息。
5. 支持消息的撤回
6. 配置 `API_ID``API_HASH` 可以自动创建群聊转发,实现消息分组。
7. 微信语音转文字功能。
1. 微信单聊消息、微信群消息、公众号消息,转发到 Telegram 机器人
2. Telegram 向指定的微信用户、微信群、公众号发送消息
3. 可设置微信群组黑名单、白名单,来简单的控制消息转发的群
4. 支持从 Telegram 发送视频、文件、贴纸、图片、语音消息
5. 可撤回通过 Telegram 发送给微信的消息
6. 配置了 `API_ID``API_HASH` ,可以自动创建单独的群聊来转发消息
7. 微信语音转文字

## 支持功能

### 微信消息类型支持列表

+ [x] 文本消息(文本内表情可转换成 Telegram 的 Emoji,但是映射很多对不上的)
+ [x] 非官方表情包
+ [x] 图片消息
+ [x] 音频/视频通话 (仅消息提醒)
+ [x] 文件消息
+ [x] 语音消息
+ [x] 撤回消息
+ [x] 链接消息
+ [x] 小程序消息(部分支持)
+ [x] 位置消息(转位置文字)
+ [x] 红包消息(提醒,无法获取红包内容)
+ [x] 群聊消息
+ [x] 群聊@消息(@所有人和@你 会转换成 Telegram @你)
+ [x] 公众号消息
+ [ ] 商店表情
+ [ ] 企业微信用户发送的消息


## 注意事项

1. 本项目仅用于技术研究和学习,不得用于非法用途
2. 不论遇到什么问题都欢迎提交 issue
3. 因 Telegram Bot API 限制,无法发送超过 **20MB** 的文件以及接收超过 **50MB** 的文件(配置API_ID和API_HASH可以解决)
4. 本项目只能尽量保证实现 **Web微信** 支持的消息类型,不支持的消息例如:微信原生表情包、收发红包等无能为力
5. 目前,由于网络或者技术原因可能导致的消息丢失无法完全避免如有重要的消息时请注意
1. 本项目仅用于技术研究和学习,不得用于非法用途
2. 无论遇到什么问题都欢迎提交 issue
3. 因 Telegram Bot API 限制,无法发送超过 **20MB** 的文件以及接收超过 **50MB** 的文件(配置API_ID和API_HASH可以解决)
4. 本项目只能尽量保证实现 **Web微信** 支持的消息类型,不支持的消息例如:微信原生表情包、收发红包等无能为力
5. 由于网络或者技术原因可能导致的消息丢失无法完全避免如有重要的消息时请注意

## 部署安装

Expand All @@ -38,7 +60,7 @@ services:
volumes:
- ./config:/app/storage
- ./save-files:/app/save-files # 保存文件夹挂载后贴纸文件不需要重新转换
# use env file or you can jest set environment here
# 可以是用 env_file 指定环境变量文件
# env_file: ".env"
environment:
BOT_TOKEN: ''
Expand Down Expand Up @@ -96,27 +118,29 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env
npm install
```

2.`.env` 文件中配置 Telegram Bot 的 token 和代理信息。
2.`.env` 文件中配置 Telegram Bot 的 Token 和代理(可选)

3. 运行程序:

```shell
npm start
# 或者
npm run dev
```

4. TG 中机器人发送 `/start` 开始 或者 `/login` 登录
4. TG 中机器人发送 `/start` 开始 或者 `/login` 登录

## 使用说明

### BOT命令

`/login`:获取登录二维码首次部署启动时,最先发送 `/login` 命令的人将成为 `BOT` 的所有者
`/login`:获取登录二维码首次部署启动时,最先发送 `/login` 命令的人将成为 `BOT` 的所有者

`/user`:获取微信用户列表,点击按钮可对该微信用户发送消息(可通过名称或备注搜索,例如 `/user 张` 查找包含「张」的微信用户)
`/user`:获取微信用户列表;点击按钮后可发消息(可通过名称或备注搜索,例如 `/user 张` 查找包含「张」的微信用户)

`/room`:获取微信群列表,点击按钮可对该微信群发送消息(可通过名称或备注搜索,例如 `/room 外卖` 查找含有「外卖」的微信群)
`/room`:获取微信群列表;点击按钮后可发消息(可通过名称或备注搜索,例如 `/room 外卖` 查找含有「外卖」的微信群)

`/recent`:获取最近接收过消息的用户或者微信群,点击按钮可回复
`/recent`:获取最近接收过消息的用户或者微信群;点击按钮后可回复

`/setting`:程序设置

Expand All @@ -126,13 +150,13 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env

`/order`:可设置对某个公众号的快捷指令,快速对公众号发送指定消息内容

`/cgdata`:更新群组的头像和名称(仅支持在群组使用,需要 BOT 拥有管理员权限)
`/cgdata`:更新群组的头像和名称(仅支持在群组使用需要 BOT 拥有管理员权限)

`/autocg`:开启自动创建群组模式对微信消息进行自动分组,需要配置 `API_ID``API_HASH`**推荐开启**
`/autocg`:开启自动创建群组模式对微信消息进行自动分组,需要配置 `API_ID``API_HASH`**推荐开启**

`/check`:查看当前微信的登录状态

`/source`:对被压缩的文件消息回复 `/source` 可以获取到原始文件(仅支持对文件消息使用)
`/source`:对被压缩的文件消息回复 `/source` 可以获取到原始文件(仅支持对文件消息使用)

### 环境变量说明

Expand Down Expand Up @@ -170,7 +194,7 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env

2. 反馈发送成功:是否反馈消息的发送状态(如果不是很需要请勿开启,因为默认失败会有提示)

3. 自动切换联系人:如果在 BOT 中有微信用户或微信群回复,则会自动切换回复到该微信用户或者微信群。 **请注意,发送前刚好有消息发给你可能会导致错误发送消息**
3. 自动切换联系人:如果在 BOT 中有微信用户或微信群回复则会自动切换回复到该微信用户或者微信群。 **请注意,发送前刚好有消息发给你可能会导致错误发送消息**

4. 接受公众号消息:是否接受公众号消息

Expand All @@ -186,15 +210,16 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env

### 撤回消息

2分钟内发送的消息能撤回,撤回方式是回复 `&rm` 给自己发送的消息,媒体消息需要等待发送成功才能撤回,如果配置了 `API_ID``API_HASH` 删除消息即可撤回
2分钟内发送的消息能撤回,撤回方式是回复 `&rm` 给自己发送的消息,媒体消息需要等待发送成功才能撤回。
如果配置了 `API_ID``API_HASH` 删除消息(需要双向删除)即可撤回。

---

### 获取`API_ID``API_HASH`

1. 登录您的[telegram account](https://my.telegram.org/)
1. 登录 [telegram account](https://my.telegram.org/)

2. 然后点击「API development tools」并填写您的应用程序详细信息(只需应用程序标题和简称)
2. 然后点击「API development tools」并填写应用程序详细信息(只需应用程序标题和简称)

3. 最后点击「Create application」

Expand All @@ -210,7 +235,7 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env

### 手动对消息进行分组

**注意:** 因为 `wechaty-puppet-wechat4u` 每次重新登录的时候,id都会变化。所以没办法获取每个联系人和群组的唯一key。判断是否是同一个联系人和群组的方式是通过联系人的备注和昵称进行判断的。此方法在备注或者昵称不唯一的情况下,在下一次重新登录的时候,可能会错误的绑定到联系人和群组。或者当联系人或者群组的名称发生变化的时候,有可能会出现绑定失败的情况,此情况需要重新绑定。
**注意:** 因为 `wechaty-puppet-wechat4u` 每次重新登录的时候,id都会变化,所以没办法获取每个联系人和群组的唯一 key。判断是否是同一个联系人和群组的方式是通过联系人的备注和昵称进行判断的。此方法,在备注或者昵称不唯一的情况下,在下一次重新登录的时候,可能会错误的绑定到联系人和群组。或者当联系人或者群组的名称发生变化的时候,有可能会出现绑定失败的情况,此情况需要重新绑定。

1. 关闭掉机器人的隐私模式,打开 BotFather,输入 `/mybots`,选择你的bot。点击 `Bot Settings` - `Group Privacy` - `Turn off`
,出现 `Privacy mode is disabled for xxx` 就说明关闭成功了
Expand All @@ -222,23 +247,20 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env

`/cgdata`:设置group的头像和昵称为微信联系人或群组(需要管理员权限)

---

### 自动对消息分组

1. 配置 `API_ID``API_HASH`
2. 关闭掉机器人的隐私模式
2. 关闭掉机器人的隐私模式
3.`/autocg` 命令开启自动分组模式,按提示登录 Telegram 即可

---

### 语音转文字

1. 配置 `TENCENT_SECRET_ID``TENCENT_SECRET_KEY`,API 可在腾讯[语音识别控制台](https://console.cloud.tencent.com/asr)开通
,有免费的使用额度
1. 配置 `TENCENT_SECRET_ID``TENCENT_SECRET_KEY` 可在腾讯 [语音识别控制台](https://console.cloud.tencent.com/asr)开通
有免费的使用额度
2.`/setting` 中开启自动文字转语音功能

---

### 自定义消息模板

Expand All @@ -264,16 +286,14 @@ docker run -itd --env BOT_TOKEN="" --env PROXY_HOST="" --env PROXY_PORT="" --env

## 参与开发

1. fork 项目,切换到`refactor/ts-single-dev` 分支,或者新建一个分支,请不要直接提交代码到 master 分支
1. fork 项目切换到 `refactor/ts-single-dev` 分支或者新建一个分支请不要直接提交代码到 master 分支
2. 提交 Pull Request 到 `refactor/ts-single-dev` 分支

---

## License

[MIT](LICENSE)

---

## Thanks

Expand Down

0 comments on commit 22f5318

Please sign in to comment.