- [2025-01-08] 由网友指出,wechaty 走的协议容易被微信警告,网络协议的方式仍然走不通,感兴趣的可以考虑用模拟 IPAD 登陆的方式 或者 通过 COW (chatgpt-on-wechat:https://github.com/zhayujie/chatgpt-on-wechat)
- [2025-01-08] 感兴趣深入研究的,可以通过 wechaty 社区找到Juzi BOT,puppet_padplus 提供 token 避免被警告封号,但是也限时。 1. 加 wechaty 社区 2. COW 社区
All Data WeChat 是一个基于 Wechaty 的微信机器人项目,用于实时监控指定微信群聊的聊天记录,并将消息保存为结构化 JSON 文件。支持过滤非文本消息(如图片、表情包、链接等),并按文件大小分割日志。
- 实时监控群聊:监控指定微信群聊的聊天记录。
- 过滤非文本消息:自动过滤图片、表情包、公众号链接、语音、视频等非文本消息。
- 结构化日志:将聊天记录保存为 JSON 格式,包含时间戳、发送者、消息内容等字段。
- 日志分割:当日志文件达到指定大小(默认 10MB)时,自动创建新文件。
- 二维码登录:支持终端显示二维码、保存二维码图片、通过 Web 服务访问二维码。
- Node.js 16 或更高版本
- npm 或 yarn
-
克隆项目:
git clone https://github.com/bbbfishhh/all-data-wechat.git cd all-data-wechat
-
安装依赖:
npm install
-
修改
bot.js
中的配置:TARGET_GROUP
:目标群聊名称。MAX_FILE_SIZE
:单个日志文件大小限制(默认 10MB)。
-
运行项目:
node bot.js
-
根据提示操作:
- 在终端扫描二维码。
- 或者访问
http://<服务器IP>:3000
查看二维码。 - 或者下载
qrcode.png
文件扫描。
日志文件保存在 logs
文件夹中,文件名为 log_1.json
、log_2.json
,依次递增。每条日志格式如下:
{
"timestamp": "2023-10-01T12:34:56.789Z",
"sender": "用户A",
"message": "你好,这是一个测试消息。",
"room": "测试群聊"
}
以下类型的消息会被自动过滤:
- 图片(
Message.Type.Image
) - 表情包(
Message.Type.Emoticon
) - 链接(
Message.Type.Url
,包括公众号链接) - 语音(
Message.Type.Audio
) - 视频(
Message.Type.Video
)
all-data-wechat/
├── logs/ # 日志文件夹
├── node_modules/ # 依赖文件夹
├── bot.js # 主程序
├── qrcode.png # 二维码图片
├── package.json # 项目配置文件
├── package-lock.json # 依赖锁文件
└── README.md # 项目说明文件
-
扩展日志字段:
- 修改
logEntry
对象,添加新的字段。
- 修改
-
支持更多消息类型:
- 修改
filteredTypes
数组,添加或删除需要过滤的消息类型。
- 修改
-
按时间分割日志:
- 修改
getCurrentLogFile
函数,支持按日期创建日志文件。
- 修改
-
使用
pm2
管理进程:npm install -g pm2 pm2 start bot.js --name "all-data-wechat"
-
配置防火墙:
- 开放
3000
端口,允许外部访问二维码 Web 服务。
- 开放
本项目基于 MIT 许可证 开源。
- Wechaty:微信机器人框架。
- qrcode-terminal:终端二维码生成工具。
- express:Web 服务框架。
如有任何问题或建议,请提交 Issue 或 Pull Request。
- bbbfishhh
- Email: [email protected]
- GitHub: bbbfishhh