手写辛苦,希望给赞
#!/usr/local/bin/python3
# coding=utf-8
import os
import re
import time
import _thread
import itchat
from itchat.content import *
# 可以撤回的消息格式:文本、语音、视频、图片、位置、名片、分享、附件
# 存储收到的消息
# 格式:{msg_id:{msg_from,msg_to,msg_time,msg_time_rec,msg_tye,msg_content,msg_share_url}}
msg_dict = {
}
# 存储消息中文件的临时目录,程序启动时,先清空
rev_tmp_dir = "/Users/chenlong/d1/wechat/rev/"
if not os.path.exists(rev_tmp_dir):
os.mkdir(rev_tmp_dir)
else:
for f in os.listdir(rev_tmp_dir):
path = os.path.join(rev_tmp_dir, f)
if os.path.isfile(path):
os.remove(path)
# 表情有一个问题:消息和撤回提示的msg_id不一致
face_bug = None
# 监听微信消息(只限可撤回的消息类型),存储到本地,并清除超时的消息
# 可撤回的消息类型:TEXT、PICTURE、MAP、CARD、SHARING、RECORDING、ATTACHMENT、VIDEO、FRIENDS、NOTE
@itchat.msg_register([TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO, FRIENDS, NOTE],
isFriendChat=True, isGroupChat=True, isMpChat=True)
def handler_reveive_msg(msg):
global face_bug
msg_time_rev = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
msg_id = msg['MsgId']
msg_time = msg['CreateTime']
msg_share_url = None
group_name = None
# 获取发送人
if 'ActualNickName' in msg:
sender_info = set_sender_group_chat(msg)
msg_from = sender_info['msg_from']
group_name = sender_info['group_name']
else:
msg_from = (itcha