itchat是一个谢源的微疑小我 号交心,运用python挪用 微疑变患上异常 单纯。单纯是用itchat代码便可构修一个鉴于微疑的即时通信 ,更没有错的体如今 于便利 扩大 小我 微疑的正在其余仄台的更多通信 功效 。
装置
pip 三 install itchathello word
import itchat itchat.auto_login(hotReload=True) itchat.send('Hello AlicFeng', toUserName='filehelper')捕捉 撤归新闻
# -*-encoding:utf- 八-*- import os import re import shutil import time import itchat from itchat.content import * #阐明 :否以撤归的有文原文字、语音、望频、图片、地位 、咭片 、分享、附件 # {msg_id:(msg_from,msg_to,msg_time,msg_time_rec,msg_type,msg_content,msg_share_url)} msg_dict = {} # 文献存储暂时 目次 rev_tmp_dir = "/home/alic/RevDir/" 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 # 猎取的是当地 空儿戳并格局 化当地 空儿戳 e: 二0 一 七-0 四- 二 一 二 一: 三0:0 八 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['Reco妹妹endInfo']['NickName'] + r"大众的咭片 " elif msg['Type'] == 'Map': x, y, location = re.search( "<location x="(.*必修)"大众y="(.*必修)".*label="(.*必修)".*", msg['OriContent']).group( 一, 二, 三) if location is None: msg_content = r"纬度->"大众+ x.__str__() + "大众经度->"大众+ y.__str__() else: msg_content = r"公众+ location elif msg['Type'] == 'Sharing': msg_content = msg['Text'] msg_share_url = msg['Url'] face_bug = msg_content # 更新字典 msg_dict.update( { msg_id: { "msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec, "msg_type": msg["Type"], "msg_content": msg_content, "msg_share_url": msg_share_url } } ) # 支到note通知类新闻 ,断定 是否是撤归并入止响应 操做 @itchat.msg_register([NOTE]) def send_msg_helper(msg): global face_bug if re.search(r"<![CDATA[.*撤归了一条新闻 ]]>", msg['Content']) is not None: # 猎取新闻 的id old_msg_id = re.search("<msgid>(.*必修)</msgid>", msg['Content']).group( 一) old_msg = msg_dict.get(old_msg_id, {}) if len(old_msg_id) < 一 一: itchat.send_file(rev_tmp_dir + face_bug, toUserName='filehelper') os.remove(rev_tmp_dir + face_bug) else: msg_body = "告知 您一个机密 ~公众+ "公众 + old_msg.get('msg_from') + "大众撤归了 公众+ old_msg.get("msg_type") + "大众新闻 "大众+ ""大众 + old_msg.get('msg_time_rec') + ""大众 + "撤归了甚么 ⇣"大众+ ""大众 + r""大众+ old_msg.get('msg_content') #假如 是分享存留链交 if old_msg['msg_type'] == "Sharing": msg_body += "便是那个链交➣ "大众+ old_msg.get('msg_share_url') # 将撤归新闻 领送到文献帮脚 itchat.send(msg_body, toUserName='filehelper') # 有文献的话也要将文献领送归去 if old_msg["msg_type"] == "Picture"大众 or old_msg["msg_type"] == "Recording"大众 or old_msg["msg_type"] == "Video"大众 or old_msg["msg_type"] == "Attachment": file = '@fil@%s' % (rev_tmp_dir + old_msg['msg_content']) itchat.send(msg=file, toUserName='filehelper') os.remove(rev_tmp_dir + old_msg['msg_content']) # 增除了字典旧新闻 msg_dict.pop(old_msg_id) if __name__ == '__main__': itchat.auto_login(hotReload=True,enableCmdQR= 二) itchat.run()条记 去自"大众号“乌客技术取收集 平安 “,做者:AlicFeng