From 0cce9b9a2c1f4d03af882370d74a7f7894484b16 Mon Sep 17 00:00:00 2001 From: hackrobot Date: Wed, 20 Mar 2024 13:07:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=BA=E5=AE=9A=E7=9A=84xml=E6=A8=A1?= =?UTF-8?q?=E7=89=88,=E4=B8=8E=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WXBotDemo.py | 85 +++++++++++---------- __pycache__/planet.cpython-310.pyc | Bin 3845 -> 13486 bytes planet.py | 114 +++++++++++++---------------- planet.xml | 112 +++++++++++++--------------- 4 files changed, 146 insertions(+), 165 deletions(-) diff --git a/WXBotDemo.py b/WXBotDemo.py index a90b8c2..4bf2b94 100644 --- a/WXBotDemo.py +++ b/WXBotDemo.py @@ -5,14 +5,14 @@ import time from flask import request, Flask try: - import xml.etree.cElementTree as ET + import xml.etree.cElementTree as ET except ImportError: - import xml.etree.ElementTree as ET + import xml.etree.ElementTree as ET import WXBotService -from planet import planetXml +from planet import planetXml from lxml import etree -import xml.etree.ElementTree as ETree +import xml.dom.minidom wxbot = Flask(__name__) @@ -25,6 +25,33 @@ def hello(): return json.dumps({"Code": 0}) +def sendminiProgram(data, account_wxid, wxid, msgXml): + + # 发送小程序 + if data.get('isSender') != 1: + root = ET.fromstring(msgXml) #xml-字符串形式 + + #打开xml文档 + # current_dir = os.path.dirname(os.path.abspath(__file__)) + # print('current_dir+/planet.xml',current_dir+'\planet.xml') + # tree = ET.parse(current_dir+'\planet.xml') + # root = tree.getroot() + + # 微信好友的wxid + # wxid='wxid_w2imh7ki5s4q12' + for pagepath in root.iter('pagepath'): + print(pagepath.text) # 打印名字 + pagepath.text = pagepath.text + f'?wxid={wxid}' + print('修改path', pagepath.text) # 打印名字 + + # 修改后的xml转成string , method='xml' + msgXml = ET.tostring(root, encoding='utf-8').decode('utf-8') + WXBotService.send_xml_message( + account_wxid, wxid, msgXml + # account_wxid, "wxid_w2imh7ki5s4q12", planetXml + ) + + def kp(event_data): # unicode [\\uxxxxx] 转 emoji 表情 event_data = json.loads( @@ -32,18 +59,20 @@ def kp(event_data): json.dumps(event_data, ensure_ascii=False), 'json')) kp_log = '' # 定义鲲鹏日志消息 - event_type = event_data.get('event_type') - account_wxid = event_data.get('account_wxid') + event_type = event_data.get('event_type') #事件类型 + account_wxid = event_data.get('account_wxid') #机器人id data = event_data.get('data') - msg_type = data.get('msgtype') + msg_type = data.get('msgtype') #消息类型 msg = data.get('content') - to_wxid = data.get('to_wxid') + to_wxid = data.get('to_wxid') #发送给 to_name = data.get('to_name') filepath = data.get("filepath") - subtype = data.get('subtype') + subtype = data.get('subtype') #类型 + thumbpath = data.get('thumbpath') #图片,存在电脑绝对路径 - wxid = data.get('final_from_wxid') + wxid = data.get('final_from_wxid') #消息来源用户 wx_name = data.get('final_from_name') + group = None if data.get('from_wxid') == wxid else data.get('from_wxid') group_name = None if data.get('from_name') == wx_name else data.get( 'from_name') @@ -147,13 +176,12 @@ def kp(event_data): print(f'{type_str} 表情包消息 下载路径:{down_path}') elif msg_type == 48: # 48 地理位置 kp_log = f'{type_str} 地理位置 内容:{msg}' - - + elif msg_type == 49: # 49 xml消息 # 获取根节点 - root=ET.fromstring(msg) + root = ET.fromstring(msg) xml_appmsg = root.find('appmsg') - + xml_title = xml_appmsg.findtext('title') xml_type = xml_appmsg.findtext('type') xml_des = xml_appmsg.findtext('des') @@ -165,7 +193,7 @@ def kp(event_data): kp_log = f'{type_str} 音乐消息 歌曲:{xml_title} 歌手:{xml_des} 网址:{xml_url}' elif xml_type == '5': # 5 链接 kp_log = f'{type_str} 链接消息 标题:{xml_title} 内容:{xml_des} 网址:{xml_url}' - print("kp_log--------------------------------",msg) + print("kp_log--------------------------------", msg) # 本身也是系统消息-link,会无线循环 # 判断是不是自己发的消息 # if data.get('isSender') != 1: @@ -173,8 +201,7 @@ def kp(event_data): # account_wxid, "wxid_w2imh7ki5s4q12", "title", "dec", # "https://www.baidu.com", # "https://p1-q.mafengwo.net/s17/M00/E3/9C/CoUBXl_cawCAQWMcAAGGhEoBcRU77.jpeg") - - + elif xml_type == '6': # 6 文件 kp_log = f'{type_str} 文件消息 文件名:{xml_title} 文件大小:{xml_des} 文件路径:{filepath}' elif xml_type == '19': # 19 合并转发聊天记录 @@ -183,29 +210,9 @@ def kp(event_data): kp_log = f'{type_str} 小程序消息 小程序名:{xml_appmsg.findtext("sourcedisplayname")} 标题:{xml_title} ' \ f'appid:{xml_appmsg.findtext("weappinfo/appid")} ' \ f'pagepath:{xml_appmsg.findtext("weappinfo/pagepath")}' - print("---------------------------kp_log",msg) - # print("---------------------------kp_log",planetXml) - # print('msg---', msg) + print("---------------------------kp_log", msg) # 发送小程序 - if data.get('isSender') != 1: - root=ET.fromstring(msg) - - # 微信好友的wxid - wxid='wxid_w2imh7ki5s4q12' - for pagepath in root.iter('pagepath'): - print (pagepath.text) # 打印名字 - pagepath.text =pagepath.text +f'?wxid={wxid}' - print ('修改path',pagepath.text) # 打印名字 - - # 修改后的xml转成string , method='xml' - msg =ET.tostring(root, encoding='utf-8').decode('utf-8') - - WXBotService.send_xml_message( - account_wxid, "wxid_w2imh7ki5s4q12", msg - # account_wxid, "wxid_w2imh7ki5s4q12", planetXml - - ) - + sendminiProgram(data, account_wxid, wxid, planetXml) elif xml_type == '57': # 引用消息 kp_log = f'{type_str} 引用消息 内容:{msg}' diff --git a/__pycache__/planet.cpython-310.pyc b/__pycache__/planet.cpython-310.pyc index eafbf762c75013b67a649a6fdade1cf6b6eab281..5d6cc9f8e2fdfd940eff3f1870a9dd2f33a01dd9 100644 GIT binary patch literal 13486 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 diff --git a/planet.py b/planet.py index a8c846b..2abfc8a 100644 --- a/planet.py +++ b/planet.py @@ -1,64 +1,52 @@ -planetXml=''' - - - 异度世界的星球127.0.0.1 - - [20/Mar/2024 09:10:30] "POST /wxbot HTTP/1.1" 200 - - 异度世界的星球 - 33 - view - https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect - - 3057020100044b304902010002043866a09902032f591902044da90c79020465fa36d0042461316466393862632d656333632d346438302d623330652d3766613538653831613436340204051408030201000405004c537500 - dc2e218e5faf36dd4add4db1e0308cbe - 34873 - 720 - 576 - 712778198a86497a3495eed7256f1fd7 - 712778198a86497a3495eed7256f1fd7 - 0 - wxid_haqoszjheyuz22_229_1710897030 - - gh_735af7f13193@app - 异度世界的星球 - dc2e218e5faf36dd4add4db1e0308cbe - - - - - - - 2 - 3 - - - - - 2 - - - 0 - 0 - 0 - 0 - 0 - 0 - - 720 - 576 - - 0 - - - 0 - - - 0 - - - wxid_4413224132412 - 0 - - 1 - - - +#第28行,cmder手动复制,会丢失信息, 可以写到text文件先 + +planetXml=''' + + + 异度世界的星球 + 异度世界的星球 + 33 + https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect + + 3057020100044b304902010002043866a09902032f591902044da90c79020465fa34a2042433653236333932352d646237622d343330332d613561302d3031663130346562343634630204051408030201000405004c53d900 + ceccddf866f36866b6fd956330bf32ed + 69368 + 720 + 576 + ab3f1e24e3a0af4c436b308a123bdc02 + ab3f1e24e3a0af4c436b308a123bdc02 + 0 + wxid_haqoszjheyuz22_322_1710910860 + + gh_735af7f13193@app + 异度世界的星球 + ceccddf866f36866b6fd956330bf32ed + + + + 2 + 4 + + + + + 2 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + wxid_4413224132412 + 0 + + 1 + + + ''' \ No newline at end of file diff --git a/planet.xml b/planet.xml index a34db67..d68f160 100644 --- a/planet.xml +++ b/planet.xml @@ -1,64 +1,50 @@ - - - - 异度世界的星球127.0.0.1 - - [20/Mar/2024 09:10:30] "POST /wxbot HTTP/1.1" 200 - - 异度世界的星球 - 33 - view - https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect - - 3057020100044b304902010002043866a09902032f591902044da90c79020465fa36d0042461316466393862632d656333632d346438302d623330652d3766613538653831613436340204051408030201000405004c537500 - dc2e218e5faf36dd4add4db1e0308cbe - 34873 - 720 - 576 - 712778198a86497a3495eed7256f1fd7 - 712778198a86497a3495eed7256f1fd7 - 0 - wxid_haqoszjheyuz22_229_1710897030 - - gh_735af7f13193@app - 异度世界的星球 - dc2e218e5faf36dd4add4db1e0308cbe - - - - - - - 2 - 3 - - - - - 2 - - - 0 - 0 - 0 - 0 - 0 - 0 - - 720 - 576 - - 0 - - - 0 - - - 0 - - - wxid_4413224132412 - 0 - - 1 - - - + + + + 异度世界的星球 + 异度世界的星球 + 33 + https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect + + 3057020100044b304902010002043866a09902032f591902044da90c79020465fa34a2042433653236333932352d646237622d343330332d613561302d3031663130346562343634630204051408030201000405004c53d900 + ceccddf866f36866b6fd956330bf32ed + 69368 + 720 + 576 + ab3f1e24e3a0af4c436b308a123bdc02 + ab3f1e24e3a0af4c436b308a123bdc02 + 0 + wxid_haqoszjheyuz22_322_1710910860 + + gh_735af7f13193@app + 异度世界的星球 + ceccddf866f36866b6fd956330bf32ed + + + + 2 + 4 + + + + + 2 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + wxid_4413224132412 + 0 + + 1 + + + \ No newline at end of file