zl程序教程

您现在的位置是:首页 >  后端

当前栏目

信息时代——微信防撤回(Python实现)

Python 实现 撤回
2023-09-14 09:05:23 时间

目录

1 前言

2 有微信联想起的哲思

2.1 哲学思维开始冒头

2.2 哲学期

2.3 科学时代

2.4 后科学时代

3 微信防撤回完整代码奉上


1 前言

她总是微信撤回,我得想一个法子治治她,哈哈哈.....

2 有微信联想起的哲思

2.1 哲学思维开始冒头

在这个信息量大增的信息时代,每天脑袋要处理很大的信息量,还是需要了解一点底层逻辑。

 你看中国的名家,它甚至把的问题基本都提到了,也就是中国在前神学时代,它压制不住人类思维向高层开,所以它的神学思脉、哲学思脉都不断地要冒头,但最终部没有冒成典型状态而是一个滞碍状态。

2.2 哲学期

再下来哲学期,叫理性思辨淬炼,奠基科学前瞻。它兴起于古希腊,然后成为文艺复兴之后科学时代得以生长的基因。它式微于哥白尼、伽利略和牛顿,也就是以哥白尼、 伽利略和牛顿为标志哲学时代衰微,科学时代兴起,但它们是一个自然衔接过程。

我举一个例子,牛顿的书名叫《自然哲学的数学原理》,他认为他在做哲学,他不认为他在研究科学。他认为他研究的问题就是古希腊人早期研究的自然哲学问题。



而且你在他的书里不仅看到整个哲学思辨的那个基础,你还看到一个东西神学, 它的God,他认为人类逻辑思境的极致是深入不下去的,那个地方的起点、归原点是God。但是你今天读牛顿的书,你绝读不出宗教和哲学的味道,它已经在其中淡出这个意趣,也就是神
学哲学意趣淡出,突出的是整个科学第一次系统化宇宙观的表述。所以我们看牛顿学说就能知道,哲学期跟神学期的衔接关系。

2.3 科学时代

科学时代,大信息量之分化处理,这就是科学时代。

我在前面一再讲所谓人类文明过程, 就是信息增量过程。我这句话不准确,严格讲,整个宇宙物演进程,就是信息增益进程,也就是整个宇宙一百三十 七亿年的增长过程、发育过程,就是信息量不断增大的过程。
人类文明只不过继承了这个宇宙物演进程,所以人类文明一路表达为信息增量过程。

由于信息量越来越大,原来的哲学思辨,从博物学状态,也就是一个人可以掌握所有知识,到信息量太大,任何一个人无法处理如此之大的信息量。

于是成分科之学,每一个人只能研究一个专业,而且分科越来越细,它表达的是人类智力的分化,继续表达宇宙物演分化进程,这个信息量越来越大,处理越来越精深,任何个人无法承担,于是大家分科处理。我们把这个大信息量分化处理的高精阶段,叫科学阶段。

以至于像英国鸦片战争,居然开来几十余破船,就把农业文明最发达的大国中国打得惨败,它是一一个极为暴烈的文化代偿形态,它因此也将给自身带来严重的戕害效应,同时也给它自身带来未来紧迫的转型需要。

文化一定是维护载体生存的。如果一个文化最终显现出越来越大的戕害效应,怀志着这个文化行将衰落了,因此科学的强大力度反而是它快速转型的内在驱动力。

2.4 后科学时代


最后就是后科学时代,它以超大信息量的维护生存筛选处理为基本方式。什么意思?科学时代任何信息整理理成知识只要能为我所用,都是人类力量的表达。

3 微信防撤回完整代码奉上

                

Github项目地址:https://github.com/pig6/wxrobot


#=======导入相关库========
import re
import tuling_robot

#========自动接受好友=====
def auto_accept_friends(msg):
    # 接受好友请求
    new_friend = msg.card.accept()
    # 向新的好友发送消息
    new_friend.send('我已自动接受了你的好友请求')


#=========自动回复=========
def auto_reply(msg):
    # 关键字回复 or 图灵机器人回复
    # handle_withdraw_msg(msg)
    keyword_reply(msg) or tuling_reply(msg)

#=====关键字回复================
def keyword_reply(msg):
    if '你叫啥' in msg.text or '你叫啥名字' in msg.text:
        return msg.reply('沃德天·维森莫·拉莫帅·帅德布耀')
    pass


#======图灵机器人回复===========
def tuling_reply(msg):
    tuling_robot.auto_reply(msg)


#=======处理系统消息===========
def handle_system_msg(msg):
    raw = msg.raw
    # 4表示消息状态为撤回
    if raw['Status'] == 4 and msg.bot.is_forward_revoke_msg:
        # 转发撤回的消息
        forward_revoke_msg(msg)

#========转发撤回的消息========
def forward_revoke_msg(msg):
    # 获取被撤回消息的ID
    revoke_msg_id = re.search('<msgid>(.*?)</msgid>', msg.raw['Content']).group(1)
    # bot中有缓存之前的消息,默认200条
    for old_msg_item in msg.bot.messages[::-1]:
        # 查找撤回的那条
        if revoke_msg_id == str(old_msg_item.id):
            # 判断是群消息撤回还是好友消息撤回
            if old_msg_item.member:
                sender_name = '群「{0}」中的「{1}」'.format(old_msg_item.chat.name, old_msg_item.member.name)
            else:
                sender_name = '「{}」'.format(old_msg_item.chat.name)
            # 名片无法转发
            if old_msg_item.type == 'Card':
                sex = '男' if old_msg_item.card.sex == 1 else '女' or '未知'
                msg.bot.master.send('「{0}」撤回了一张名片:\n名称:{1},性别:{2}'.format(sender_name, old_msg_item.card.name, sex))
            else:
                # 转发被撤回的消息
                old_msg_item.forward(msg.bot.master,
                                     prefix='{}撤回了一条消息:'.format(sender_name, get_msg_chinese_type(old_msg_item.type)))
            return None

#===============转中文类型名===========
def get_msg_chinese_type(msg_type):
    if msg_type == 'Text':
        return '文本'
    if msg_type == 'Map':
        return '位置'
    if msg_type == 'Card':
        return '名片'
    if msg_type == 'Note':
        return '提示'
    if msg_type == 'Sharing':
        return '分享'
    if msg_type == 'Picture':
        return '图片'
    if msg_type == 'Recording':
        return '语音'
    if msg_type == 'Attachment':
        return '文件'
    if msg_type == 'Video':
        return '视频'
    if msg_type == 'Friends':
        return '好友请求'
    if msg_type == 'System':
        return '系统'
# -*- coding: utf-8 -*-

#=====导入相关库==========#
import os
from itchat.content import *
import itchat


info = None
friend_id = None
info_type = None
name = None
cot = None
rev_tmp_dir = r'E:\科研\跑代码\跑代码\python\微信防测回' + '\\'
if not os.path.exists(rev_tmp_dir):
    os.mkdir(rev_tmp_dir)
itchat.login()


@itchat.msg_register([TEXT,RECORDING,PICTURE])
def resever_info(msg):
    global info
    global friend_id
    global info_type
    global name
    name = msg['FileName']
    info_type = msg['Type']
    info = msg['Text']
    friend_id = msg['FromUserName']
    print(msg)
    print(info)


@itchat.msg_register(NOTE)
def chehui_info(chehui_msg):
    global info
    global friend_id
    global name

    print(chehui_msg)
    if '撤回了一条消息' in chehui_msg['Text']:
        if info_type == 'Text':
            with open(rev_tmp_dir+"文本撤回.txt",'a') as f:
                f.write(info+'\n')
            itchat.send(msg=chehui_msg['Text'] + ":" + info, toUserName=friend_id)
        elif info_type == 'Recording':
            info(rev_tmp_dir + name)
            file = '@fil@%s' % (rev_tmp_dir + name)
            itchat.send(msg=chehui_msg['Text']+":", toUserName='friend_id')
            itchat.send(msg=file, toUserName='filehelper')
        elif info_type == 'Picture':
            info(rev_tmp_dir + name)
            file = '@fil@%s' % (rev_tmp_dir + name)
            itchat.send(msg=chehui_msg['Text']+":", toUserName='friend_id')
            itchat.send(msg=file, toUserName='filehelper')


itchat.run()