• 大小: 4.43KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-05-06
  • 语言: Python
  • 标签: 微信  

资源简介

扫码登录,被撤回消息会自动发到文件接收内

资源截图

代码片段和文件信息

import os
import re
import shutil
import time
import itchat
from itchat.content import *

# 说明:可以撤回的有文本文字、语音、视频、图片、位置、名片、分享、附件

# {msg_id:(msg_frommsg_tomsg_timemsg_time_recmsg_typemsg_contentmsg_share_url)}
msg_dict = {}

# 文件存储临时目录
rev_tmp_dir = “/wechat not withdraw“
if not os.path.exists(rev_tmp_dir): os.mkdir(rev_tmp_dir)

# 表情有一个问题 | 接受信息和接受note的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])
def handler_receive_msg(msg):
    global face_bug
    # 获取的是本地时间戳并格式化本地时间
    msg_time_rec = time.strftime(“%Y-%m-%d %H:%M:%S“ time.localtime())
    # 消息ID
    msg_id = msg[‘MsgId‘]
    # 消息时间
    msg_time = msg[‘CreateTime‘]
    # 消息发送人昵称 | 这里也可以使用RemarkName备注 但是自己或者没有备注的人为None
    msg_from = (itchat.search_friends(userName=msg[‘FromUserName‘]))[“NickName“]
    # 消息内容
    msg_content = None
    # 分享的链接
    msg_share_url = None
    if msg[‘Type‘] == ‘Text‘ \
            or msg[‘Type‘] == ‘Friends‘:
        msg_content = msg[‘Text‘]
    elif msg[‘Type‘] == ‘Recording‘ \
            or msg[‘Type‘] == ‘Attachment‘ \
            or msg[‘Type‘] == ‘Video‘ \
            or msg[‘Type‘] == ‘Picture‘:
        msg_content = r““ + msg[‘FileName‘]
        # 保存文件
        msg[‘Text‘](rev_tmp_dir + msg[‘FileName‘])
    elif msg[‘Type‘] == ‘Card‘:
        msg_content = msg[‘RecommendInfo‘][‘NickName‘] + r“ 的名片“
    elif msg[‘Type‘] == ‘Map‘:
        x y location = re.search(
            “        if location is None:
            msg_content = r“纬度->“ + x.__str__() + “ 经度->“ + y.__str__()
        else:
            msg_content = r““ + location
    elif msg[‘Type‘] == ‘Sharing‘:
        msg_content = msg[‘Text‘]
        m

评论

共有 条评论