From 16e7de945386550df5072a746c3c98b44e7540b3 Mon Sep 17 00:00:00 2001 From: hackrobot Date: Wed, 20 Mar 2024 19:12:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WXBotDemo.py | 259 ----------------------- __pycache__/WXBotService.cpython-310.pyc | Bin 29133 -> 0 bytes __pycache__/WXBotService.cpython-312.pyc | Bin 39903 -> 0 bytes __pycache__/config.cpython-310.pyc | Bin 294 -> 0 bytes __pycache__/config.cpython-312.pyc | Bin 359 -> 0 bytes __pycache__/crud.cpython-312.pyc | Bin 2352 -> 0 bytes __pycache__/database.cpython-312.pyc | Bin 575 -> 0 bytes __pycache__/main.cpython-310.pyc | Bin 584 -> 0 bytes __pycache__/main.cpython-312.pyc | Bin 15532 -> 0 bytes __pycache__/models.cpython-312.pyc | Bin 994 -> 0 bytes __pycache__/planet.cpython-310.pyc | Bin 13486 -> 0 bytes __pycache__/planet.cpython-312.pyc | Bin 13497 -> 0 bytes __pycache__/schemas.cpython-312.pyc | Bin 1063 -> 0 bytes app.db | Bin 12288 -> 0 bytes planet.xml | 50 ----- 15 files changed, 309 deletions(-) delete mode 100644 WXBotDemo.py delete mode 100644 __pycache__/WXBotService.cpython-310.pyc delete mode 100644 __pycache__/WXBotService.cpython-312.pyc delete mode 100644 __pycache__/config.cpython-310.pyc delete mode 100644 __pycache__/config.cpython-312.pyc delete mode 100644 __pycache__/crud.cpython-312.pyc delete mode 100644 __pycache__/database.cpython-312.pyc delete mode 100644 __pycache__/main.cpython-310.pyc delete mode 100644 __pycache__/main.cpython-312.pyc delete mode 100644 __pycache__/models.cpython-312.pyc delete mode 100644 __pycache__/planet.cpython-310.pyc delete mode 100644 __pycache__/planet.cpython-312.pyc delete mode 100644 __pycache__/schemas.cpython-312.pyc delete mode 100644 app.db delete mode 100644 planet.xml diff --git a/WXBotDemo.py b/WXBotDemo.py deleted file mode 100644 index e3421f7..0000000 --- a/WXBotDemo.py +++ /dev/null @@ -1,259 +0,0 @@ -import json -import os -import threading -import time - -from flask import request, Flask -try: - import xml.etree.cElementTree as ET -except ImportError: - import xml.etree.ElementTree as ET - -import WXBotService -from planet import planetXml -from lxml import etree -import xml.dom.minidom - -wxbot = Flask(__name__) - - -@wxbot.route("/wxbot", methods=['get', 'post']) -def hello(): - data = request.get_json() - t = threading.Thread(target=kp, args=(data, )) # 通过当前线程开启新的线程去执行 - t.start() - 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( - WXBotService.unicode_to_emoji( - json.dumps(event_data, ensure_ascii=False), 'json')) - - kp_log = '' # 定义鲲鹏日志消息 - 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 = data.get('content') - to_wxid = data.get('to_wxid') #发送给 - to_name = data.get('to_name') - filepath = data.get("filepath") - subtype = data.get('subtype') #类型 - thumbpath = data.get('thumbpath') #图片,存在电脑绝对路径 - - 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') - '''event类型判断''' - if event_type == 1001: # 1001 创建WeChat进程成功,通讯连接成功 - kp_log = f'创建WeChat进程成功,通讯连接成功' - elif event_type == 1002: # 1002 登录成功 - kp_log = f'登录成功 {data.get("nickname")}({data.get("wxid")})' - elif event_type == 1003: # 1003 账号注销登录 - kp_log = f'账号注销登录 {data.get("wxid")} {data.get("reason")}' - elif event_type == 1004: # 1004 切换聊天对象事件 - kp_log = f'切换聊天对象事件 {data.get("nickname")}({data.get("wxid")})' - elif event_type == 1005: # 1005 切换联系人事件 - kp_log = f'切换联系人事件 {data.get("nickname")}({data.get("wxid")})' - elif event_type == 1007: # 1005 二维码刷新事件 - kp_log = f'二维码刷新事件 {data.get("qrcode")}' - elif event_type == 1008: # 1008 连接断开 - kp_log = f'连接断开' - elif event_type == 1009: # 1009 群员退群通知 - member_list = [] - for member in data.get('memberlist'): - member_list.append( - f'{member.get("nickname")}({member.get("wxid")})') - kp_log = f'群员退群通知 {",".join(member_list)} 退出了群聊 {data.get("roomname")}({data.get("roomid")}) ' \ - f'人数:{data.get("membercount")}' - elif event_type == 1010: # 1010 群员进群通知 - member_list = [] - for member in data.get('memberlist'): - member_list.append( - f'{member.get("nickName")}({member.get("userName")})') - kp_log = f'群员进群通知 {",".join(member_list)} 加入了群聊 {data.get("roomname")}({data.get("roomid")})' - elif event_type == 1011: # 1011 收款消息 - pay_msg = ET.fromstring(msg).find('paymsg') - pay_msg_type = pay_msg.findtext('PayMsgType') - if pay_msg_type == '9': # 二维码收款 - status = pay_msg.findtext('status') - username = pay_msg.findtext('username') - display_name = pay_msg.findtext('displayname') - fee = pay_msg.findtext('fee') - if status == '0': - kp_log = f'收款消息 {display_name}({username}) 扫描收款二维码' - elif status == '1': - kp_log = f'收款消息 {display_name}({username}) 付款成功 {int(fee) / 100} 元' - elif status == '2': - kp_log = f'收款消息 {display_name}({username}) 取消付款' - elif pay_msg_type == '45': # 貌似有未收款转账或转账红包过期会触发 42 和 45 类型 - pass # kp_log = f'收款消息 {pay_msg.findtext("fromusername")} {pay_msg.findtext("content")}' - elif event_type == 1040: # 1040 撤回消息事件 - if not group: - kp_log = f'撤回消息事件 {wx_name}({wxid}) 撤回了 {msg}' - else: - kp_log = f'撤回消息事件 {wx_name}({wxid}) 从群 {group_name}({group}) 撤回了 {msg}' - elif event_type == 1100: # 1100 同步消息 - if group: - type_str = f'同步消息 群聊消息 群聊:{group_name}({group}) 发送者:{wx_name}({wxid})' - elif 'gh_' in wxid: - type_str = f'同步消息 公众号消息 {wx_name}({wxid})' - elif '@openim' in wxid: - type_str = f'同步消息 企业微信消息 {wx_name}({wxid})' - else: - type_str = f'同步消息 私聊消息 {wx_name}({wxid})' - - if data.get('isSender') == 1: - # 手机发送还是电脑发送这里判断不是很准确 - if to_wxid == account_wxid: - type_str = f'机器人手机端 发送的 ' + type_str - else: - type_str = f'机器人电脑端 发送的 ' + type_str - - if msg_type == 1: # 1 文本消息/自带表情 - kp_log = f'{type_str} 文本消息 内容:{msg}' - elif msg_type == 3: # 3 图片消息 - kp_log = f'{type_str} 图片消息 内容:{filepath}' - # 本地dat图片解密 - decrypt_path = WXBotService.local_decrypt_image( - filepath, os.path.join(os.getcwd(), '解密图片')) - print(f'{type_str} 图片消息 解密路径:{decrypt_path}') - elif msg_type == 34: # 34 语言消息(需要在设置中打开语言自动转文字) - xml_msg = ET.fromstring(msg) - kp_log = f'{type_str} 语音消息 内容:{xml_msg.find("voicetrans").get("transtext")}' - elif msg_type == 37: # 37 好友请求 - xml_msg = ET.fromstring(msg) - kp_log = f'同步消息 好友请求 {xml_msg.get("fromnickname")}({xml_msg.get("fromusername")}) ' \ - f'验证内容:{xml_msg.get("content")}' - # 同意好友请求 - WXBotService.agree_friend_request(account_wxid, - xml_msg.get('alias'), - xml_msg.get('encryptusername'), - xml_msg.get('ticket'), - xml_msg.get('scene')) - newFriendWxid=xml_msg.get('alias') - # 将好友信息=>保存到数据库 - newFriendDict=WXBotService.get_friend_info(account_wxid, newFriendWxid) - - elif msg_type == 42: # 42 名片消息 - xml_msg = ET.fromstring(msg) - kp_log = f'{type_str} 企业微信名片消息 {xml_msg.get("nickname")}({xml_msg.get("username")})' - elif msg_type == 43: # 43 视频消息 - kp_log = f'{type_str} 视频消息 内容:{filepath}' - elif msg_type == 47: # 47 表情包 - kp_log = f'{type_str} 表情包消息 网址:{ET.fromstring(msg).find("emoji").get("cdnurl".replace("amp;", ""))}' - # 本地下载图片 - down_path = WXBotService.local_download_image( - msg, os.path.join(os.getcwd(), '下载图片')) - 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) - xml_appmsg = root.find('appmsg') - - xml_title = xml_appmsg.findtext('title') - xml_type = xml_appmsg.findtext('type') - xml_des = xml_appmsg.findtext('des') - xml_url = xml_appmsg.findtext('url') - - if xml_type == '1': # 1 文本 - kp_log = f'收到 {wxid} xml文本消息' - elif xml_type == '3': # 3 歌曲 - 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) - # 本身也是系统消息-link,会无线循环 - # 判断是不是自己发的消息 - # if data.get('isSender') != 1: - # WXBotService.send_link_message( - # 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 合并转发聊天记录 - kp_log = f'{type_str} 合并转发聊天记录 文件名:{xml_title} 文件大小:{xml_des} 文件路径:{filepath}' - elif xml_type == '33': # 33 小程序 - 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) - # 发送小程序 - sendminiProgram(data, account_wxid, wxid, planetXml) - - elif xml_type == '57': # 引用消息 - kp_log = f'{type_str} 引用消息 内容:{msg}' - elif xml_type == '2000': # 2000 转账消息 - money = xml_appmsg.findtext('wcpayinfo/feedesc').replace( - '¥', '') - pay_subtype = xml_appmsg.findtext('wcpayinfo/paysubtype') - transfer_id = xml_appmsg.findtext('wcpayinfo/transferid') - if pay_subtype == '1': - kp_log = f'{type_str} 转账消息 {money} 元' - # 自动接收转账 - WXBotService.transfer_receipt(account_wxid, wxid, - transfer_id) - elif pay_subtype == '3': - kp_log = f'{type_str} 已收款 {money} 元 转账' - elif msg_type == 66: # 66 企业微信名片消息 - xml_msg = ET.fromstring(msg) - kp_log = f'企业微信名片消息 {xml_msg.get("nickname")}({xml_msg.get("username")})' - elif msg_type == 10000: # 10000 系统消息 - kp_log = f'系统消息 {wx_name}({wxid}) {msg}' - - #获取通讯录 - # allFriends=WXBotService.get_address_list(account_wxid) - # print('allFriends',allFriends) - # 发送H5链接 - - if not kp_log: - print( - '====================================================================================' - ) - print(event_data) - print( - '====================================================================================' - ) - else: - print(kp_log) - - -if __name__ == '__main__': - wxbot.run('127.0.0.1', 28369) diff --git a/__pycache__/WXBotService.cpython-310.pyc b/__pycache__/WXBotService.cpython-310.pyc deleted file mode 100644 index 5525a94f4ac08724401f53b769060d98d7d85e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29133 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 LO-X<7zG43dtxm)G diff --git a/__pycache__/WXBotService.cpython-312.pyc b/__pycache__/WXBotService.cpython-312.pyc deleted file mode 100644 index 2139e1b3065859af67838f5f297dfd0e62c3d040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39903 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 O00|BT4ki{x4n_b+)>u*i diff --git a/__pycache__/config.cpython-312.pyc b/__pycache__/config.cpython-312.pyc deleted file mode 100644 index c5036abcec655fee86324b779416917e2d8adbd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmX@j%ge<81of{QlRAL(V-N=hn4pZ$Wl+%G>lpx{p_P$=k&(W4Kq(JU{$=NuXLFmM zFQ4&p(o#*TZlX-=wL5jW5( sMj$Sh2NEBc85tRGGjKlO5$$m5_w4lS_HN+3!J`Hwc%>V;ia3F40L_PKJpcdz diff --git a/__pycache__/crud.cpython-312.pyc b/__pycache__/crud.cpython-312.pyc deleted file mode 100644 index d9b7e3e117fb82ede4d827ad58eff8a0960724e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2352 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 SaOJn!5|&=w{R7yeO#cfDECmDr diff --git a/__pycache__/planet.cpython-310.pyc b/__pycache__/planet.cpython-310.pyc deleted file mode 100644 index 5d6cc9f8e2fdfd940eff3f1870a9dd2f33a01dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13486 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 diff --git a/app.db b/app.db deleted file mode 100644 index 2c38aca97c479aa4a86225ef18eb16f3d636494c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI#K}*9h6bJC66Je9X-lUFjO zILRn}h@xZiyXH+7?{ihxbQvWgYi`Z*c2-o=YDteG9SlXf-tnz{}fB*y_009U<00Izz00bbg!2*7BHq`$c{D*Ng2tWV=5P$##AOHaf LKmY;|fB<9P5ExMN diff --git a/planet.xml b/planet.xml deleted file mode 100644 index d68f160..0000000 --- a/planet.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - 异度世界的星球 - 异度世界的星球 - 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