python取り消し防止スクリプト

4117 ワード

テキストリンク:https://blog.csdn.net/vcx08/article/details/80233092
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()

注意python 3でもっと多くの内容を解析する必要がある場合は、msgを直接印刷して、自分で解析することができます.