teddy 6acdaea9f8 feat(sendmsg, README): 添加微信状态检查和发送结果验证功能
- 在sendmsg.py中实现微信状态检查,确保客户端就绪、已登录及接收者有效性。
- 增强消息和文件发送逻辑,添加发送结果验证,记录详细的发送状态信息。
- 更新README.md,详细描述新增功能和使用方法,包括微信状态检查和多格式图片支持。
2025-08-22 18:02:11 +08:00

4.2 KiB
Raw Blame History

WXMSG - 微信消息自动发送程序

功能概述

这是一个自动发送每日AI新闻图片和消息到微信的程序具有完整的日志记录、错误处理和微信状态检查功能。

主要功能

  • 定时发送: 每天在指定时间自动发送图片和消息
  • 容错机制: 微信失败时自动发送飞书提醒
  • 详细日志: 完整的操作日志记录,便于问题排查
  • 进程管理: 支持后台运行和进程控制
  • 微信状态检查: 自动检查微信客户端状态和接收者有效性
  • 智能重试: 支持多种图片格式,自动重试机制

新增功能

微信状态检查

程序现在会自动检查:

  • 微信客户端是否就绪
  • 微信是否已登录
  • 接收者是否存在于联系人列表
  • 当前会话数量和联系人数量
  • 微信窗口状态

发送结果验证

使用wxauto的WxResponse对象验证

  • 文件发送是否成功
  • 消息发送是否成功
  • 详细的发送状态信息
  • 部分失败时的智能处理

多格式图片支持

支持多种图片格式:

  • .jpg
  • .jpeg
  • .png

日志功能

日志文件位置

所有日志文件保存在 wxauto_logs/ 目录下,按日期和模块分类:

  • sendmsg_YYYYMMDD.log - 主发送模块日志
  • scheduler_YYYYMMDD.log - 定时任务调度器日志
  • send_openmsg_YYYYMMDD.log - 飞书提醒消息日志
  • send_filemsg_YYYYMMDD.log - 文件未找到提醒日志
  • service_runner_YYYYMMDD.log - 后台服务启动日志
  • stop_scheduler_YYYYMMDD.log - 进程停止日志

日志级别

  • INFO: 正常操作信息
  • WARNING: 警告信息
  • ERROR: 错误信息
  • DEBUG: 调试信息

日志内容

每个日志条目包含:

  • 时间戳
  • 模块名称
  • 日志级别
  • 函数名和行号
  • 详细消息

使用方法

1. 直接运行

python sendmsg.py

2. 启动定时任务

python scheduler.py

3. 后台运行

python service_runner.py

4. 停止服务

python stop_scheduler.py

5. 测试微信状态

python test_wechat_status.py

配置说明

config.py 中配置:

  • 发送时间
  • 文件路径
  • 消息内容
  • 飞书API配置

故障排查

查看日志

  1. 检查 wxauto_logs/ 目录下的最新日志文件
  2. 根据时间戳找到相关操作的日志
  3. 查看ERROR级别的日志了解错误详情

常见问题

  1. 微信客户端问题: 查看 sendmsg_*.log 中的微信初始化日志
  2. 文件未找到: 检查文件路径配置和文件是否存在
  3. 飞书API问题: 查看 send_openmsg_*.logsend_filemsg_*.log
  4. 进程管理问题: 查看 service_runner_*.logstop_scheduler_*.log

微信状态检查

运行测试脚本检查微信状态:

python test_wechat_status.py

这将显示:

  • 微信客户端状态
  • 登录状态
  • 接收者有效性
  • 可用方法列表

日志示例

2024-01-15 11:40:00 - sendmsg - INFO - check_wechat_status:45 - ✅ 微信已登录,当前会话数量: 15
2024-01-15 11:40:00 - sendmsg - INFO - check_wechat_status:52 - ✅ 接收者 '文件传输助手' 存在于联系人列表中
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:120 - 🎉 所有内容发送完成!
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:125 - 发送结果总结:
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:126 -   📎 文件发送: ✅ 成功
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:127 -   💬 消息发送: ✅ 成功

依赖要求

  • Python 3.13+
  • wxauto
  • lark-oapi
  • schedule
  • psutil (可选,用于进程管理)

注意事项

  1. 确保微信客户端已登录
  2. 检查文件路径配置是否正确
  3. 验证飞书API配置是否有效
  4. 定期检查日志文件大小,避免占用过多磁盘空间
  5. 运行前建议先执行 test_wechat_status.py 检查微信状态

更新日志

v0.2.0

  • 添加微信状态检查功能
  • 使用WxResponse验证发送结果
  • 支持多种图片格式
  • 改进错误处理和日志记录
  • 添加微信状态测试脚本

v0.1.0

  • 基础消息发送功能
  • 定时任务调度
  • 飞书提醒机制
  • 基础日志记录