feat: 固定的xml模版,与解析
This commit is contained in:
85
WXBotDemo.py
85
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}'
|
||||
|
||||
Binary file not shown.
114
planet.py
114
planet.py
@@ -1,64 +1,52 @@
|
||||
planetXml='''<?xml version="1.0"? encoding="UTF-8"?>
|
||||
<msg>
|
||||
<appmsg appid="" sdkver="0">
|
||||
<title>异度世界的星球</title>127.0.0.1 - - [20/Mar/2024 09:10:30] "POST /wxbot HTTP/1.1" 200 -
|
||||
<des>异度世界的星球</des>
|
||||
<type>33</type>
|
||||
<action>view</action>
|
||||
<url>https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect</url>
|
||||
<appattach>
|
||||
<cdnthumburl>3057020100044b304902010002043866a09902032f591902044da90c79020465fa36d0042461316466393862632d656333632d346438302d623330652d3766613538653831613436340204051408030201000405004c537500</cdnthumburl>
|
||||
<cdnthumbmd5>dc2e218e5faf36dd4add4db1e0308cbe</cdnthumbmd5>
|
||||
<cdnthumblength>34873</cdnthumblength>
|
||||
<cdnthumbwidth>720</cdnthumbwidth>
|
||||
<cdnthumbheight>576</cdnthumbheight>
|
||||
<cdnthumbaeskey>712778198a86497a3495eed7256f1fd7</cdnthumbaeskey>
|
||||
<aeskey>712778198a86497a3495eed7256f1fd7</aeskey>
|
||||
<encryver>0</encryver>
|
||||
<filekey>wxid_haqoszjheyuz22_229_1710897030</filekey>
|
||||
</appattach>
|
||||
<sourceusername>gh_735af7f13193@app</sourceusername>
|
||||
<sourcedisplayname>异度世界的星球</sourcedisplayname>
|
||||
<md5>dc2e218e5faf36dd4add4db1e0308cbe</md5>
|
||||
<webviewshared>
|
||||
<jsAppId><![CDATA[]]></jsAppId>
|
||||
</webviewshared>
|
||||
<weappinfo>
|
||||
<username><![CDATA[gh_735af7f13193@app]]></username>
|
||||
<appid><![CDATA[wxa55815dd741a540d]]></appid>
|
||||
<type>2</type>
|
||||
<version>3</version>
|
||||
<weappiconurl><![CDATA[http://mmbiz.qpic.cn/sz_mmbiz_png/43cSpHKSBGyHO7qHeuad8BJLUQ6W9ib7QLfgYicyvGTvpibvLicrS0MaTia3nplqDbWrLIXSfxQgpL3Aib1jGjHjOl9A/640?wx_fmt=png&wxfrom>
|
||||
<pagepath><![CDATA[pages/index/index.html]]></pagepath>
|
||||
<shareId><![CDATA[0_wxa55815dd741a540d_a96a890b27e8c43d18e2e75fda2a9215_1710896515_0]]></shareId>
|
||||
<pkginfo>
|
||||
<type>2</type>
|
||||
<md5><![CDATA[721c114bb969b9fdc4379396248cb6a3]]></md5>
|
||||
</pkginfo>
|
||||
<appservicetype>0</appservicetype>
|
||||
<brandofficialflag>0</brandofficialflag>
|
||||
<showRelievedBuyFlag>0</showRelievedBuyFlag>
|
||||
<hasRelievedBuyPlugin>0</hasRelievedBuyPlugin>
|
||||
<flagshipflag>0</flagshipflag>
|
||||
<subType>0</subType>
|
||||
<videopageinfo>
|
||||
<thumbwidth>720</thumbwidth>
|
||||
<thumbheight>576</thumbheight>
|
||||
<videosource><![CDATA[]]></videosource>
|
||||
<fromopensdk>0</fromopensdk>
|
||||
<appthumburl><![CDATA[(null)]]></appthumburl>
|
||||
</videopageinfo>
|
||||
<isprivatemessage>0</isprivatemessage>
|
||||
</weappinfo>
|
||||
<secretmsg>
|
||||
<isscrectmsg>0</isscrectmsg>
|
||||
</secretmsg>
|
||||
</appmsg>
|
||||
<fromusername>wxid_4413224132412</fromusername>
|
||||
<scene>0</scene>
|
||||
<appinfo>
|
||||
<version>1</version>
|
||||
<appname></appname>
|
||||
</appinfo>
|
||||
<commenturl></commenturl>
|
||||
#第28行,cmder手动复制,会丢失信息, 可以写到text文件先
|
||||
|
||||
planetXml='''<?xml version="1.0"?>
|
||||
<msg>
|
||||
<appmsg appid="" sdkver="0">
|
||||
<title>异度世界的星球</title>
|
||||
<des>异度世界的星球</des>
|
||||
<type>33</type>
|
||||
<url>https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect</url>
|
||||
<appattach>
|
||||
<cdnthumburl>3057020100044b304902010002043866a09902032f591902044da90c79020465fa34a2042433653236333932352d646237622d343330332d613561302d3031663130346562343634630204051408030201000405004c53d900</cdnthumburl>
|
||||
<cdnthumbmd5>ceccddf866f36866b6fd956330bf32ed</cdnthumbmd5>
|
||||
<cdnthumblength>69368</cdnthumblength>
|
||||
<cdnthumbwidth>720</cdnthumbwidth>
|
||||
<cdnthumbheight>576</cdnthumbheight>
|
||||
<cdnthumbaeskey>ab3f1e24e3a0af4c436b308a123bdc02</cdnthumbaeskey>
|
||||
<aeskey>ab3f1e24e3a0af4c436b308a123bdc02</aeskey>
|
||||
<encryver>0</encryver>
|
||||
<filekey>wxid_haqoszjheyuz22_322_1710910860</filekey>
|
||||
</appattach>
|
||||
<sourceusername>gh_735af7f13193@app</sourceusername>
|
||||
<sourcedisplayname>异度世界的星球</sourcedisplayname>
|
||||
<md5>ceccddf866f36866b6fd956330bf32ed</md5>
|
||||
<weappinfo>
|
||||
<username><![CDATA[gh_735af7f13193@app]]></username>
|
||||
<appid><![CDATA[wxa55815dd741a540d]]></appid>
|
||||
<type>2</type>
|
||||
<version>4</version>
|
||||
<weappiconurl><![CDATA[http://mmbiz.qpic.cn/sz_mmbiz_png/43cSpHKSBGyHO7qHeuad8BJLUQ6W9ib7QLfgYicyvGTvpibvLicrS0MaTia3nplqDbWrLIXSfxQgpL3Aib1jGjHjOl9A/640?wx_fmt=png&wxfrom=200]]></weappiconurl>
|
||||
<pagepath><![CDATA[pages/index/index.html]]></pagepath>
|
||||
<shareId><![CDATA[0_wxa55815dd741a540d_a96a890b27e8c43d18e2e75fda2a9215_1710910859_0]]></shareId>
|
||||
<pkginfo>
|
||||
<type>2</type>
|
||||
<md5><![CDATA[887a279c203c0af7f0dacdfe17948305]]></md5>
|
||||
</pkginfo>
|
||||
<appservicetype>0</appservicetype>
|
||||
<brandofficialflag>0</brandofficialflag>
|
||||
<showRelievedBuyFlag>0</showRelievedBuyFlag>
|
||||
<hasRelievedBuyPlugin>0</hasRelievedBuyPlugin>
|
||||
<flagshipflag>0</flagshipflag>
|
||||
<subType>0</subType>
|
||||
<isprivatemessage>0</isprivatemessage>
|
||||
</weappinfo>
|
||||
</appmsg>
|
||||
<fromusername>wxid_4413224132412</fromusername>
|
||||
<scene>0</scene>
|
||||
<appinfo>
|
||||
<version>1</version>
|
||||
<appname></appname>
|
||||
</appinfo>
|
||||
<commenturl></commenturl>
|
||||
</msg>'''
|
||||
112
planet.xml
112
planet.xml
@@ -1,64 +1,50 @@
|
||||
<?xml version="1.0"?>
|
||||
<msg>
|
||||
<appmsg appid="" sdkver="0">
|
||||
<title>异度世界的星球</title>127.0.0.1 - - [20/Mar/2024 09:10:30] "POST /wxbot HTTP/1.1" 200 -
|
||||
<des>异度世界的星球</des>
|
||||
<type>33</type>
|
||||
<action>view</action>
|
||||
<url>https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect</url>
|
||||
<appattach>
|
||||
<cdnthumburl>3057020100044b304902010002043866a09902032f591902044da90c79020465fa36d0042461316466393862632d656333632d346438302d623330652d3766613538653831613436340204051408030201000405004c537500</cdnthumburl>
|
||||
<cdnthumbmd5>dc2e218e5faf36dd4add4db1e0308cbe</cdnthumbmd5>
|
||||
<cdnthumblength>34873</cdnthumblength>
|
||||
<cdnthumbwidth>720</cdnthumbwidth>
|
||||
<cdnthumbheight>576</cdnthumbheight>
|
||||
<cdnthumbaeskey>712778198a86497a3495eed7256f1fd7</cdnthumbaeskey>
|
||||
<aeskey>712778198a86497a3495eed7256f1fd7</aeskey>
|
||||
<encryver>0</encryver>
|
||||
<filekey>wxid_haqoszjheyuz22_229_1710897030</filekey>
|
||||
</appattach>
|
||||
<sourceusername>gh_735af7f13193@app</sourceusername>
|
||||
<sourcedisplayname>异度世界的星球</sourcedisplayname>
|
||||
<md5>dc2e218e5faf36dd4add4db1e0308cbe</md5>
|
||||
<webviewshared>
|
||||
<jsAppId><![CDATA[]]></jsAppId>
|
||||
</webviewshared>
|
||||
<weappinfo>
|
||||
<username><![CDATA[gh_735af7f13193@app]]></username>
|
||||
<appid><![CDATA[wxa55815dd741a540d]]></appid>
|
||||
<type>2</type>
|
||||
<version>3</version>
|
||||
<weappiconurl><![CDATA[http://mmbiz.qpic.cn/sz_mmbiz_png/43cSpHKSBGyHO7qHeuad8BJLUQ6W9ib7QLfgYicyvGTvpibvLicrS0MaTia3nplqDbWrLIXSfxQgpL3Aib1jGjHjOl9A/640?wx_fmt=png&wxfrom>
|
||||
<pagepath><![CDATA[pages/index/index.html?wxid=wxid_w2imh7ki5s4q12]]></pagepath>
|
||||
<shareId><![CDATA[0_wxa55815dd741a540d_a96a890b27e8c43d18e2e75fda2a9215_1710896515_0]]></shareId>
|
||||
<pkginfo>
|
||||
<type>2</type>
|
||||
<md5><![CDATA[721c114bb969b9fdc4379396248cb6a3]]></md5>
|
||||
</pkginfo>
|
||||
<appservicetype>0</appservicetype>
|
||||
<brandofficialflag>0</brandofficialflag>
|
||||
<showRelievedBuyFlag>0</showRelievedBuyFlag>
|
||||
<hasRelievedBuyPlugin>0</hasRelievedBuyPlugin>
|
||||
<flagshipflag>0</flagshipflag>
|
||||
<subType>0</subType>
|
||||
<videopageinfo>
|
||||
<thumbwidth>720</thumbwidth>
|
||||
<thumbheight>576</thumbheight>
|
||||
<videosource><![CDATA[]]></videosource>
|
||||
<fromopensdk>0</fromopensdk>
|
||||
<appthumburl><![CDATA[(null)]]></appthumburl>
|
||||
</videopageinfo>
|
||||
<isprivatemessage>0</isprivatemessage>
|
||||
</weappinfo>
|
||||
<secretmsg>
|
||||
<isscrectmsg>0</isscrectmsg>
|
||||
</secretmsg>
|
||||
</appmsg>
|
||||
<fromusername>wxid_4413224132412</fromusername>
|
||||
<scene>0</scene>
|
||||
<appinfo>
|
||||
<version>1</version>
|
||||
<appname></appname>
|
||||
</appinfo>
|
||||
<commenturl></commenturl>
|
||||
<?xml version="1.0"?>
|
||||
<msg>
|
||||
<appmsg appid="" sdkver="0">
|
||||
<title>异度世界的星球</title>
|
||||
<des>异度世界的星球</des>
|
||||
<type>33</type>
|
||||
<url>https://mp.weixin.qq.com/mp/waerrpage?appid=wxa55815dd741a540d&type=upgrade&upgradetype=3#wechat_redirect</url>
|
||||
<appattach>
|
||||
<cdnthumburl>3057020100044b304902010002043866a09902032f591902044da90c79020465fa34a2042433653236333932352d646237622d343330332d613561302d3031663130346562343634630204051408030201000405004c53d900</cdnthumburl>
|
||||
<cdnthumbmd5>ceccddf866f36866b6fd956330bf32ed</cdnthumbmd5>
|
||||
<cdnthumblength>69368</cdnthumblength>
|
||||
<cdnthumbwidth>720</cdnthumbwidth>
|
||||
<cdnthumbheight>576</cdnthumbheight>
|
||||
<cdnthumbaeskey>ab3f1e24e3a0af4c436b308a123bdc02</cdnthumbaeskey>
|
||||
<aeskey>ab3f1e24e3a0af4c436b308a123bdc02</aeskey>
|
||||
<encryver>0</encryver>
|
||||
<filekey>wxid_haqoszjheyuz22_322_1710910860</filekey>
|
||||
</appattach>
|
||||
<sourceusername>gh_735af7f13193@app</sourceusername>
|
||||
<sourcedisplayname>异度世界的星球</sourcedisplayname>
|
||||
<md5>ceccddf866f36866b6fd956330bf32ed</md5>
|
||||
<weappinfo>
|
||||
<username><![CDATA[gh_735af7f13193@app]]></username>
|
||||
<appid><![CDATA[wxa55815dd741a540d]]></appid>
|
||||
<type>2</type>
|
||||
<version>4</version>
|
||||
<weappiconurl><![CDATA[http://mmbiz.qpic.cn/sz_mmbiz_png/43cSpHKSBGyHO7qHeuad8BJLUQ6W9ib7QLfgYicyvGTvpibvLicrS0MaTia3nplqDbWrLIXSfxQgpL3Aib1jGjHjOl9A/640?wx_fmt=png&wxfrom=200]]></weappiconurl>
|
||||
<pagepath><![CDATA[pages/index/index.html]]></pagepath>
|
||||
<shareId><![CDATA[0_wxa55815dd741a540d_a96a890b27e8c43d18e2e75fda2a9215_1710910859_0]]></shareId>
|
||||
<pkginfo>
|
||||
<type>2</type>
|
||||
<md5><![CDATA[887a279c203c0af7f0dacdfe17948305]]></md5>
|
||||
</pkginfo>
|
||||
<appservicetype>0</appservicetype>
|
||||
<brandofficialflag>0</brandofficialflag>
|
||||
<showRelievedBuyFlag>0</showRelievedBuyFlag>
|
||||
<hasRelievedBuyPlugin>0</hasRelievedBuyPlugin>
|
||||
<flagshipflag>0</flagshipflag>
|
||||
<subType>0</subType>
|
||||
<isprivatemessage>0</isprivatemessage>
|
||||
</weappinfo>
|
||||
</appmsg>
|
||||
<fromusername>wxid_4413224132412</fromusername>
|
||||
<scene>0</scene>
|
||||
<appinfo>
|
||||
<version>1</version>
|
||||
<appname></appname>
|
||||
</appinfo>
|
||||
<commenturl></commenturl>
|
||||
</msg>
|
||||
Reference in New Issue
Block a user