Skip to content
bluedolphiPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

微信自动化技能 (wx-auto)

技能简介

这是一个 Claude 技能,用于自动化微信操作。基于 wxautox4 库实现,支持发送微信信息、读取聊天会话内容、发送文件和图片等功能。

功能特性

  • ✅ 智能发送 - 自动识别内容类型(文本/图片/文件)
  • ✅ 批量发送 - 支持混合内容类型,逐个发送
  • ✅ 广播发送 - 同一内容发送给多个联系人
  • ✅ 文件类型检测 - 自动识别图片和文档格式
  • ✅ 发送间隔控制 - 防止频率限制
  • ✅ 发送文本消息 - 支持精确和模糊匹配
  • ✅ 发送文件 - 支持各种文件格式
  • ✅ 发送图片 - 支持常见图片格式
  • ✅ 获取聊天会话列表 - 获取微信会话信息
  • ✅ 读取聊天记录 - 获取指定联系人聊天历史
  • ✅ 完善的错误处理 - 详细日志记录
  • ✅ 状态跟踪 - 发送结果实时反馈

安装说明

  1. 安装依赖包:
pip install -r requirements.txt
  1. 确保微信客户端已登录

智能发送指南

内容自动识别规则

技能会自动识别发送内容的类型:

  1. 文本消息: 当内容不是文件路径时
  2. 图片文件: 当文件路径以 .jpg, .jpeg, .png, .gif, .bmp, .webp, .ico, .tiff, .tif 结尾时
  3. 普通文件: 当文件存在但不是图片格式时

推荐使用方式

# 推荐:使用智能发送,自动识别类型
handler.smart_send("你好", "联系人")                    # 文本
handler.smart_send("C:/images/photo.jpg", "联系人")    # 图片
handler.smart_send("C:/docs/report.pdf", "联系人")     # 文件

# 批量发送混合内容
contents = [
    "开始发送",
    "C:/images/图1.jpg",  # 图片
    "中间消息",
    "C:/docs/文件.pdf",   # 文件
    "结束消息"
]
handler.batch_send(contents, ["联系人"] * 5, delay=1.0)

频率控制建议

  • 单条发送:无限制
  • 批量发送:建议延迟 1-2 秒
  • 大量发送:建议延迟 3-5 秒

使用方法

基本使用

from wx_auto_handler import create_wx_auto_handler

# 创建处理器实例
handler = create_wx_auto_handler()

# 智能发送 - 自动识别内容类型
result = handler.smart_send("你好", "文件传输助手")  # 文本消息
result = handler.smart_send("C:/path/to/image.jpg", "张三")  # 自动识别为图片
result = handler.smart_send("C:/path/to/file.pdf", "李四")  # 自动识别为文件

# 手动指定发送方式
result = handler.send_text_message("你好", "文件传输助手")
result = handler.send_file("C:/path/to/file.txt", "张三")
result = handler.send_image("C:/path/to/image.jpg", "李四")

高级功能

# 批量发送 - 支持混合内容类型
contents = [
    "第一条消息",
    "C:/path/to/image1.jpg",  # 图片
    "第二条消息",
    "C:/path/to/file.pdf",    # 文件
    "最后一条消息"
]
contacts = ["联系人1", "联系人1", "联系人2", "联系人2", "联系人3"]
result = handler.batch_send(contents, contacts, delay=1.0)
print(result)

# 广播发送 - 同一内容给多个联系人
message = "重要通知"
contacts = ["联系人1", "联系人2", "联系人3"]
result = handler.broadcast_send(message, contacts, delay=1.0)
print(result)

# 获取聊天会话
sessions = handler.get_chat_sessions()
print(sessions)

# 获取聊天记录
history = handler.get_chat_history("张三", limit=50)
print(history)

文件结构

wx-auto/
├── README.md           # 技能说明文档
├── skill.md            # 技能描述和规范
├── wx_auto_handler.py  # 核心处理器
├── examples.py         # 基础使用示例
├── smart_examples.py   # 智能发送功能示例
├── test_wx_auto.py     # 单元测试
├── quick_test.py       # 快速测试
├── requirements.txt    # 依赖包列表
└── readme.md          # 原始说明文件

API 参考

WxAutoHandler 类

初始化

handler = WxAutoHandler()

方法

smart_send(content, contact, exact_match=True)

  • 智能发送 - 自动识别内容类型
  • 参数:
    • content: 内容(文本、图片路径或文件路径)(str)
    • contact: 联系人名称 (str)
    • exact_match: 是否精确匹配联系人 (bool)
  • 返回:操作结果字典
  • 特性:自动识别发送内容是文本、图片还是文件

batch_send(contents, contacts, exact_match=True, delay=1.0)

  • 批量发送 - 支持混合内容类型
  • 参数:
    • contents: 内容列表 (List[str])
    • contacts: 联系人名称列表 (List[str])
    • exact_match: 是否精确匹配联系人 (bool)
    • delay: 发送间隔秒数 (float)
  • 返回:批量发送结果字典
  • 特性:逐个发送,支持文本、图片、文件混合

broadcast_send(content, contacts, exact_match=True, delay=1.0)

  • 广播发送 - 同一内容给多个联系人
  • 参数:
    • content: 要发送的内容 (str)
    • contacts: 联系人名称列表 (List[str])
    • exact_match: 是否精确匹配联系人 (bool)
    • delay: 发送间隔秒数 (float)
  • 返回:广播发送结果字典

send_text_message(message, contact, exact_match=True)

  • 发送文本消息
  • 参数:
    • message: 消息内容 (str)
    • contact: 联系人名称 (str)
    • exact_match: 是否精确匹配联系人 (bool)
  • 返回:操作结果字典

send_file(file_path, contact, exact_match=True)

  • 发送文件
  • 参数:
    • file_path: 文件路径 (str)
    • contact: 联系人名称 (str)
    • exact_match: 是否精确匹配联系人 (bool)
  • 返回:操作结果字典

send_image(image_path, contact, exact_match=True)

  • 发送图片
  • 参数:
    • image_path: 图片路径 (str)
    • contact: 联系人名称 (str)
    • exact_match: 是否精确匹配联系人 (bool)
  • 返回:操作结果字典

get_chat_sessions()

  • 获取聊天会话列表
  • 返回:会话列表字典

get_chat_history(contact, limit=50)

  • 获取聊天记录
  • 参数:
    • contact: 联系人名称 (str)
    • limit: 消息数量限制 (int)
  • 返回:聊天记录字典

_detect_content_type(content)

  • 检测内容类型(内部方法)
  • 参数:
    • content: 要检测的内容 (str)
  • 返回:内容类型 ('text', 'image', 'file')

安全注意事项

  1. 隐私保护: 请确保在合法合规的前提下使用此技能
  2. 频率控制: 避免频繁发送消息,防止被微信限制
  3. 文件安全: 发送文件前请确认文件内容安全
  4. 联系人确认: 确保联系人名称准确,避免发送错误
  5. 微信状态: 确保微信客户端正常登录

错误处理

技能包含完善的错误处理机制:

  • 文件不存在检查
  • 联系人验证
  • 微信连接状态检查
  • 文件格式验证
  • 详细的错误日志

常见问题

Q: 微信初始化失败怎么办?

A: 确保微信客户端已登录,并且没有其他微信自动化工具在运行。

Q: 发送消息失败?

A: 检查联系人名称是否正确,尝试使用 exact_match=False 进行模糊匹配。

Q: 发送文件失败?

A: 确认文件路径正确,文件存在,并且微信支持该文件格式。

Q: 如何获取联系人名称?

A: 可以在微信中查看联系人名称,或者使用 get_chat_sessions() 方法获取会话列表。

更新日志

v1.0.0

  • 初始版本发布
  • 支持发送文本消息、文件、图片
  • 基础错误处理和日志记录

许可证

本技能仅供学习和个人使用,请遵守相关法律法规和微信使用条款。

技术支持

如有问题或建议,请查看示例代码或日志输出进行调试。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages