python撤销功能思路,python防止撤销脚本

pip install itchat

pip install apscheduler

python3 reword.py

'msg_create_time':msg_time,

'msg_type':msg_type,

'msg_content':msg_content

}

})

print("msg_from:%s, msg_time:%s, msg_content:%s"%(msg_from,msg_time,msg_content))

@itchat.msg_register([TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO],isGroupChat=True)

def handler_receive_msg(msg):

msg_id = msg['MsgId']

# 获取的是本地时间戳并格式化本地时间戳 e: 2019-02-16 13:43:20

msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# 消息ID

msg_id = msg['MsgId']

# 消息时间

msg_time = msg['CreateTime']

#消息类型

msg_type = msg['Type']

# 消息发送人昵称 | 这里也可以使用RemarkName备注 但是自己或者没有备注的人为None

msg_from = (msg['User']['NickName']+"-->"+msg['ActualNickName'])

# 消息内

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'])

rev_msg_dict.update({

msg_id:{

'msg_from_user':msg_from,

'msg_time_rec':msg_time_rec,

'msg_create_time':msg_time,

'msg_type':msg_type,

'msg_content':msg_content

}

})

print("msg_from:%s, msg_time:%s, msg_content:%s"%(msg_from,msg_time,msg_content))

@itchat.msg_register([NOTE], isFriendChat=True, isGroupChat=True)

def revoke_msg(msg):

if re.search(r"\", msg['Content']) is not None:

# 获取消息的id

print('somebody release word')

old_msg_id = re.search("\

(.*?)\", msg['Content']).group(1)

old_msg = rev_msg_dict.get(old_msg_id, {})

# 先发送一条文字信息

itchat.send_msg(str(old_msg.get('msg_from_user') + "撤回了一条信息:"

+ old_msg.get('msg_content')), toUserName="filehelper")

# 判断文msg_content是否存在,不存在说明可能是

if os.path.exists(os.path.join(rev_tmp_dir, old_msg.get('msg_content'))):

if old_msg.get('msg_type') == 'Picture':

itchat.send_image(os.path.join(rev_tmp_dir, old_msg.get('msg_content')),

toUserName="filehelper")

elif old_msg.get('msg_type') == 'Video':

itchat.send_video(os.path.join(rev_tmp_dir, old_msg.get('msg_content')),

toUserName="filehelper")

elif old_msg.get('msg_type') == 'Attachment' \

or old_msg.get('msg_type') == 'Recording':

itchat.send_file(os.path.join(rev_tmp_dir, old_msg.get('msg_content')),

toUserName="filehelper")

def clear_cache():

# 当前时间

cur_time = time.time()

# 遍历字典,如果有创建时间超过2分钟(120s)的记录,删除,非文本的话,连文件也删除

for key in list(rev_msg_dict.keys()):

if int(cur_time) - int(rev_msg_dict.get(key).get('msg_create_time')) > 120:

rev_msg_dict.pop(key)

# 开始轮询任务

def start_schedule():

sched.add_job(clear_cache, 'interval', minutes=2)

sched.start()

if __name__ == '__main__':

sched = BlockingScheduler()

#itchat.auto_login(hotReload=True,enableCmdQR=2

itchat.auto_login(hotReload=True,enableCmdQR=2)

itchat.run()

start_schedule()

注意用python3

如果需要解析更多的内容,可以直接打印msg,自己去解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值