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 eafbf76..5d6cc9f 100644 Binary files a/__pycache__/planet.cpython-310.pyc and b/__pycache__/planet.cpython-310.pyc differ 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