python程序打错如何返回上一步,python报错怎么返回
使用微信时,我们可能会撤回错误发送或不应该发送的信息。今天,用代码实现撤回的消息的恢复。
从那以后,就不怕别人撤回信息,感到自己看不到的尴尬
导入操作系统
导入是
导入模块
导入时间
导入它聊天
从itchat.content导入*
#说明:您可以撤回文本字符、语音、视频、图像、位置、名片、共享和附件
# {消息id:(消息发件人,消息收件人,消息时间,消息时间记录,消息类型,消息内容,消息共享
msg_dict={}
#文件存储临时目录
rev _ tmp _ dir=/家庭/工作人员/桌面/我们聊天
如果没有tos。路径。存在(rev _ tmp _ dir):OS。mkdir(rev _ tmp _ dir).
#表情有问题接收消息和接收注意的消息标识不一致的偶然解决方案
face _ bug=无
#将接收到的消息保存到词典中,在接收到新消息时清理词典超时时的消息不接受没有撤回功能的消息# [文本,图片,映射,卡片,共享,RRD ]
@ it chat.msg _ register ([文本,图片,地图、卡、共享、记录,附件,视频]
defHandler_receive_msg(消息) :
全局face_bug
#获取的是本地时间戳,用于格式化本地时间戳电子邮件:2017-04-2121336030:08
消息时间记录=时间。strftime( % y-% m-% d % h:% m:% s ,time.localtime))
#消息身份
msg_id=msg[MsgId]
#信息时间
msg_time=msg[CreateTime]
#消息发送者昵称这里也可以使用RemarkName注释,但自己或没有注释的人是没有人
msg _ from=(it聊天。search _ friends(用户名=消息[来自用户名](昵称 ) )
#信息内容
msg _ content=无
#共享的链接
邮件共享网址=无
如果消息[类型]==文本\
或者msg[Type]==Friends :
msg_content=msg[Text]
否则如果消息[类型]==记录\
或邮件[类型]==附件 \
或msg [ type ]==视频\
或msg[类型]==图片:
msg_content=r msg[FileName]
#保存文件
消息[文本] (rev _ tmp _ dir消息[文件名]).
elif msg[Type]==Card :
msg _ content=msg [推荐信息] [昵称] r 的名片
elif msg[Type]==Map :
x,y,location=re.search(
locationx=“(.*?)(y=)(y=).*?().*标签=() ) ) ) ).*?() ).)、msg[OriContent]).组)(1,2,3))))))).
如果位置为无:
msg_content=r 纬度- x.__str__()经度- y.__str__()
否则:
msg_content=r 位置
elif msg [ type ]== sharing :
msg_content=msg[Text]
msg_share_url=msg[Url]
face_bug=msg_content
更新词典
msg_dict。更新(
{
消息id: {
消息_从:消息_从,消息_时间:消息_时间,消息_时间_记录:消息_时间_记录,
msg_type: msg[Type],
消息内容:消息内容,消息共享URL :消息共享统一资源定位器
}
}
)
接收注意通知类消息,撤回并判断是否进行适当的操作
@ it聊天。消息_寄存器([注意]))))))))))))).
efsend_msg_Helper(msg):
全局face_bug
ifre.search(r\!\[CDATA\[.*消息\]\],msg[ content ]]不是无:已被撤回
#获取消息的编号
OLD_msg_id=re.search((msgid)).*?)\\/msgid\ ,msg[Content]).组(1)))
(旧_消息=消息_字典。get(old _ msg _ id,{ } _ id,)))))。
iflen(old_msg_id ) 11:
它聊天。send _ file(rev _ tmp _ dir face _ bug,toUserName=filehelper )
操作系统。移除(rev _ tmp _ dir face _ bug)。
否则:
msg_body=告诉我秘密~ \n \
OLD_msg.get(msg_from))撤回了"旧消息。获取"、"消息类型"消息)(\n)。
OLD_msg.get(msg_time_rec ) (\n))。
撤回了什么\n\
r old_msg.get(msg_content )
#共享存在链接时
if old _ msg[ msg _ type ]= sharing :msg _ body= \ n表示此链接old _ msg。get( msg _ share _ u u u u u u rl)
#向文件助手发送撤回消息
itchat.send(msg_body,toUserName=filehelper ))
#如果有文件,也请把文件发回
if old _ msg[ msg _ type ]== picture \
或old _ msg [ msg _ type ]==录制\
或old _ msg [ msg _ type ]==视频\
rold _ msg[ msg _ type ]= attachment :
file= @ fil @ % s %(rev _ tmp _ dirold _ msg[ msg _ content ])
itchat.send(msg=file,toUserName=filehelper ).
OS . remove(rev _ tmp _ dirold _ msg[ msg _ content ]
删除字典中的旧邮件
msg_dict.pop(old_msg_id))).
if __name__==__main__ :
#由于itchat提供了用于登录的auto_login方法,所以只需调用。
#以下命令允许您在登录时使用命令行查看QR码。
it chat . auto _ log in(hot reload=true))。
Itchat.run(代码可以直接复制使用。但是,请自行安装软件包。
看效果。
撤回的消息将由文件助手返回给您。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。