Message类 - chatautox
Message类
消息类中,有两个固定属性:
attr:消息属性,即消息的来源属性- system:系统消息
- self:自己发送的消息
- friend:好友消息
- other:其他消息
type:消息类型,即消息的内容属性- time:时间消息
- text:文本消息
- quote:引用消息
- voice:语音消息
- image:图片消息
- video:视频消息
- file:文件消息
- location:位置消息
- link:链接消息
- emotion:表情消息
- merge:合并转发消息
- personal_card:个人名片消息
- note: 笔记消息
- miniapp: 小程序消息
- other:其他消息
而self和friend又可以跟消息类型所组合,所以所有消息类别如下:
简单的使用示例:
Message
消息基类,所有消息类型都继承自该类
属性(所有消息类型都包含以下属性):
chat_info
获取该消息所属聊天窗口的信息
返回值:
- 类型:
dict - 描述:聊天窗口信息
- 返回值示例:
返回值:
- 类型:List[str]
roll_into_view
将消息滚动到视野内
SystemMessage
系统消息,没有特殊用法
固定属性:
TimeMessage
时间消息,继承系统消息
固定属性:
HumanMessage
人发送的消息,即自己或好友、群友发送的消息
固定属性:
特有属性:
click
点击该消息,一般特殊消息才会有作用,比如图片消息、视频消息等
select_option
右键该消息,弹出右键菜单,并选择指定选项
返回值:
- 类型:
WxResponse - 描述:操作结果
quote
引用该消息,并回复
参数:
返回值:
- 类型:
WxResponse - 描述:操作结果
forward
转发该消息
参数:
返回值:
- 类型:
WxResponse - 描述:操作结果
tickle
拍一拍该消息发送人
返回值:
- 类型:
WxResponse - 描述:操作结果
✨download_head_image
下载该消息发送人的头像
✨edit_info
编辑该消息发送人的备注和标签
参数:
返回值:
- 类型:
WxResponse - 描述:操作结果
说明:
add_tags、remove_tags、remark 三个参数不能同时为 None,否则返回失败
FriendMessage
好友、群友发送的消息,即聊天页面中,左侧人员发送的消息。继承自HumanMessage
sender_info
获取发送人信息
返回值:
- 类型:Dict[str, str]
✨delete_friend
删除该消息发送人(联系人)
参数:
返回值:
- 类型:
WxResponse - 描述:操作结果
✨add_friend
添加该消息发送人为好友(适用于群聊中尚未添加的成员)
参数:
返回值:
- 类型:
WxResponse - 描述:操作结果
自己发送的消息,即聊天页面中,右侧自己发送的消息。继承自HumanMessage
固定属性:
TextMessage
文本消息。继承自HumanMessage
固定属性:
QuoteMessage
引用消息。继承自HumanMessage
固定属性:
特有属性:
✨download_quote_image
下载引用消息中的图片或视频
参数:
返回值:
- Path: 文件路径,成功时返回该类型
- None: 引用内容不是图片或视频时返回该类型
说明:
- 仅当引用内容为图片或视频时可下载,其他类型返回 None
- Plus 版功能(方法名前缀 ✨),需激活会员后可用
✨download_quote_file
下载引用消息中的文件
参数:
返回值:
- Path: 文件路径,成功时返回该类型
- None: 引用内容不是文件时返回该类型
WxResponse: 下载失败时返回该类型
说明:
- 通过右键「定位到原文位置」找到原文件气泡后下载,完成后自动回到引用位置
- 仅当引用内容为文件时可下载(如
[文件]xxx.pdf),图片/视频请使用download_quote_image - Plus 版功能(方法名前缀 ✨),需激活会员后可用
ImageMessage
图片消息。继承自HumanMessage
固定属性:
download
下载图片,返回图片路径
参数:
返回值:
- Path: 图片路径,成功时返回该类型
WxResponse: 下载结果,失败时返回该类型
VideoMessage
视频消息。继承自HumanMessage
固定属性:
download
下载视频,返回视频路径
参数:
返回值:
- Path: 视频路径,成功时返回该类型
WxResponse: 下载结果,失败时返回该类型
VoiceMessage
语音消息。继承自HumanMessage
固定属性:
to_text
将语音消息转换为文本,返回文本内容
FileMessage
文件消息。继承自HumanMessage
固定属性:
✨download
下载文件,返回文件路径
参数:
返回值:
- Path: 文件路径,成功时返回该类型
WxResponse: 下载结果,失败时返回该类型
✨LocationMessage
位置消息。继承自HumanMessage
固定属性:
✨LinkMessage
链接消息。继承自HumanMessage
固定属性:
✨get_url
获取链接地址
返回值:
- str: 链接地址
✨EmotionMessage
表情消息。继承自HumanMessage
固定属性:
✨MergeMessage
合并消息。继承自HumanMessage
固定属性:
✨get_messages
获取合并转发中的纯内容列表(文本字符串或媒体文件路径)。会自动打开聊天记录窗口、滚动列表,图片/视频会尝试保存到本地。
返回值:
- List[str]:内容列表(路径为
/分隔的字符串)
✨get_messages_detailed
获取含发送者的明细列表,格式为 [[sender, content, None], ...]。content 为文本或 Path 对象。
✨PersonalCardMessage
名片消息。继承自HumanMessage
固定属性:
✨add_friend
添加好友
返回值:
WxResponse: 是否添加成功
✨NoteMessage
笔记消息。继承自HumanMessage
固定属性:
✨get_content
获取笔记内容
✨save_files
保存笔记中的文件
返回值:
WxResponse: 是否保存成功,若成功则data为保存的文件路径列表
✨to_markdown
将笔记转换为Markdown格式
返回值:
- Path: markdown文件路径
✨create_note
通过收藏页创建新笔记;forward_to 有值时再转发给指定联系人。流程与录制脚本一致:依次绑定微信主窗口 → 笔记编辑窗 →(可选)微信发送给 → 再回到微信主窗口。
WeChat 上可直接调用(无需聊天中的笔记消息);NoteMessage 上用法相同,详见参数说明。
content 支持纯文本,或与 get_content() 类似的混合列表(按顺序逐项写入剪贴板并粘贴:文本用 Unicode,图片用 CF_DIB,文件/视频用 CF_HDROP):
返回值:
WxResponse: 是否创建成功(含转发时是否转发成功)
✨MiniAppMessage
小程序消息(聊天卡片中含「小程序」字样的链接消息)。继承自LinkMessage。
与NoteMessage(微信原生笔记)不同:小程序 type 为 miniapp,需先用 identify_kind() 判断是否支持,再调用 get_content(),二者互不冲突。
固定属性:
content 为卡片摘要文本(如「小程序商品笔记 …」),用于识别具体小程序类型。
支持的小程序
chatautox 内置自动解析以下 3 类(其它小程序 identify_kind() 返回 None,不会误解析):
识别优先级:微商相册 → 产品笔记pro → 商品笔记。
✨identify_kind
判断当前消息是否为内置支持的小程序,并返回类型标识。
返回值:
- str:内置支持的小程序类型
- None:未内置(仅可读取
msg.content摘要)
✨get_content
点击小程序卡片,打开对应小程序窗口并解析内容(文本 + 本地图片/视频路径)。
返回值:
- List[Union[str, Path]]:有序内容列表,成功时返回
WxResponse:不支持的小程序、解析失败或内容为空时返回
说明:
get_content()内部会先click()打开小程序窗口,再等待wait秒后开始解析,无需在调用前单独msg.click()- 调用前建议先用
identify_kind()判断,避免对未支持小程序无效点击 - 解析耗时较长,监听回调中建议单独处理,避免阻塞其它消息
OtherMessage
其他暂未支持解析的消息类型