1. 聊天记录相关表
具体每个字段的含义,基本都可以通过自行测试的方式知晓。
个人账号信息:userinfo
最近联系人:rconversation
通讯录:rcontact
群:chatroom
用户头像:img_flag
聊天记录:message
聊天记录图片文件:ImgInfo2
聊天记录视频文件:videoinfo2
聊天记录语音消息:voiceinfo
*各类消息类型整理(参考Enum):
@AllArgsConstructor
public enum MicroMsgTypeEnum {
TEXT(1, "文本消息"),
IMAGE(3, "图片消息"),
VOICE(34, "语音消息"),
ACCOUNT_CARD(42, "分享名片"),
VIDEO(43, "视频消息"),
BIG_EMOJI(47, "大表情"),
LOCATION(48, "地图定位消息"),
SHARE_ARTICLE(49, "分享卡片"),
VOIP_VOICE_VIDEO(50, "音视频通话消息"),
REVERT_MSG(1000, "撤回消息提醒"),
MONEY_RED_PAPER_RECEIVED(10000, "领取红包"),
MONEY_RED_PAPER(436207665, "红包"),
MONEY_TRANSFER(419430449, "转账"),
ATTACH(1090519089, "文件"),
MUSIC(1040187441, "音乐"),
;
public final Integer type;
public final String label;
}
2. 聊天附件
2.1. 图片文件(ImgInfo2)
缩略图,路径和字段thumbImgPath的值有关,举例,如,thumbImgPath的值为:
THUMBNAIL_DIRPATH://th_65040aa7739f248dc71fab84a6fcfe21
则文件目录为:
/com.tencent.mm/MicroMsg/用户目录/image2/65/04/th_65040aa7739f248dc71fab84a6fcfe21
大图(手机上下载了原图才有,如果没有点击大图或查看原图,则对应的文件是无法打开的,也可能是加密的,但是我目前不知道如何解密,知道的伙伴可以分享一下),路径和字段bigImgPath的值有关,举例,如,bigImgPath的值为:
8e914dea195e68d5a7b9889ae5fead55.jpg
则文件目录为:
/com.tencent.mm/MicroMsg/用户目录/image2/8e/91/8e914dea195e68d5a7b9889ae5fead55.jpg
注意:
发送的图片和接收的图片有所区别,发送的图片名称,在实际存储目录中的名称,可能会带有特殊符号“⌖”,所以,如果根据上述md5名称找不到文件,可以将文件名拼接上字符“⌖”后再次尝试;如果找到了,则需要读取其中的内容(实际上,“⌖”文件是一个文本文件),其内容是一个文件名,需要再次到 /com.tencent.mm/MicroMsg/用户目录/image2/.ref/d 查找该文件。
2.2. 视频文件(videoinfo2)
视频文件在目录:
/com.tencent.mm/MicroMsg/用户目录/video 中,文件名称取字段filename
的值,一般情况下,视频封面文件为:filename.jpg,视频文件为:filename.mp4
2.3. 语音消息文件(voiceinfo)
语音消息文件的路径和字段FileName值有关,举例,如,FileName的值为:
431551022125574aba4d930104
需要先将FileName取Md5,这里431551022125574aba4d930104取Md5后的值为:
85a74299ac9e6352885bc65ced2df826
则文件目录为:
/com.tencent.mm/MicroMsg/用户目录/voice2/85/a7/msg_431551022125574aba4d930104.amr
注意,.amr文件是无法直接播放的,需要通过 silk_v3_decoder 和 ffmpeg 结合的方式进行转码,转码到.mp3后才可以播放,具体如何转码,可以参考下一章《微信聊天记录解析(3):微信语音消息.amr转码到.mp3》。
2.4. 表情文件
微信默认表情,我这里整理了一份 png格式的共108个表情,需要的可以直接 点击下载。
表情的获取方式是,通过手机发送所有表情到“微信文件传输助手网页版”,然后在“微信文件传输助手网页版”消息页面按 Ctrl + S保存该网页的资源,再通过爬虫的方式解析img标签及其css的背景图获取到的表情,如果后续微信表情有更新,可以参考这个方式来重新获取表情。
大表情(网络表情),我只找到了表情封面所在的位置,举例,如message表的imgPath字段值为:d98d1b5a148023c22ab90ed1816ca239,则表情封面所在位置为:/com.tencent.mm/MicroMsg/emoji/cover/d98d1b5a148023c22ab90ed1816ca239_cover
至于动态表情如何解析,我目前还没有找到方法,知道的伙伴可以分享一下(期待!!!)。
==================================================
博主说明:文中若有错误,敬请指出,如有侵权,请及时联系删除。