From b766052dcbc885d4957387b395e3ba815268649d Mon Sep 17 00:00:00 2001 From: hackrobot Date: Mon, 25 Mar 2024 10:19:59 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E8=AE=BE=E7=BD=AEconfig=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/config.cpython-310.pyc | Bin 290 -> 456 bytes __pycache__/main.cpython-310.pyc | Bin 9441 -> 9933 bytes config.py | 8 +++ main.py | 75 ++++++++++++++++++++++------- 4 files changed, 65 insertions(+), 18 deletions(-) diff --git a/__pycache__/config.cpython-310.pyc b/__pycache__/config.cpython-310.pyc index 3b8704a1104bfd7018ddcd2865272f6127ddce01..9af80f99729f3564ee2086f990775ef38262ddfc 100644 GIT binary patch delta 234 zcmZ3)bb^^LpO=@50SF%7V@NAuoX97`s54PpMwBIrHH9^bErl(LJ%v4rBZV=TL6c*m zk70V0aCt>$N_=rzS#eRRxv@o=v7wPsm57O@p@q4Lg}JGvp+j;;Vo6bcey%3tEur#? zL{n1>L(`NLa}&cvQxk&}ps0d{QF5xeg}I?+aF$w|Ekhlk-dSO5#CQ-r|Cp>zQ(kHL;)oD8yErnp~7xvXY^Q2k3<&o{8HMLbI2&Xo*BY(Pat VY?DJ66L>g)Ob!MPCKg5xMgSsS4Lbk; diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc index 16fbb7fa275f698e6732e072c6dcf1066d18fd80..cbc06048f55f7217d4accaf22e839f64f48c282f 100644 GIT binary patch delta 2228 zcmZuyNo*5W7@qfL@p$YQL&!!pXTjivBrKtXrDb0N1R)?$T##k_Cc(z`m^WjVXpEsr zrHVokdPu!+NN5jLrK)NpHLWUD>a7>5o_d%=t4c+{vFfQ(5&i!$P-r{W`{sZD`u^pO ze;vI)7P0E;3<;hszep1&cixV)kyD@d*OMxfn4FI%<7ObYBDXS^Fhk6^Nr+_9X(`#q zLM%KZCHu|3*;TA=j<5(@G$T!u>kKcj+t(3da$kG$a} z`4DTItN!Dl$<%YJeK!hgW-Y#(HNKlh2rRK>&qB$p)m+QkU|~p&wZG!B7O4^dPQVQy$I){^m%0I_gM|+KpsV|uI^W{z71@RJxPf)uW=+|~HX+@I&JCiEgCg(k{6YpuQ)nOp)J^+I%M3EIj;ivr-)pTM|SR?{V zq3{bTe`+*B6`A*g`jj!0v$DlWZk0F(950GVqFUbr)#p1HOY3V$K3RY1j%_Wz}O zMSQ8JMwWq}$9D)!c+@JH#ZeY3T25>N?h@ncF^1yD;N2J$FBMl1Hi@xdd;L2=+B!fK z?haOpZxxl`n1-Xp-w;0rTY7vSa?QsGve6vI$5+7~)zVhC0{On^HSRUVfbvvUE|hH0 z+Xg#61R#Dk+Uh?5!Vjp>D6|MlazNCDE>yRp)-D9dPX1 zgDr0%c?uvIW?8$GPhU z-J3PkON@y7-Gf>eko=M$Jzb#~l2Zt~#X!$EDU0cz^<wf-?j^d`L3AB>IDUmqP3ZdbII5bp3;(~;7;KYF|5)xc3qzaHg`~|2t-di^kMXFc(+c)p`<~Q%X znek7zf4hnN!LCB{uK^KL|?>v3W>% zm|i&256Og`4Kqe!BqT=Z7!r1lj?)R~!2;FpDe3gdL-j5pBl4-XPo|`;=Nk{9o4!Ix zpd6}1ag_s&s#FUUs?*39`ho6~vPz9Wr_o31K_rMg){d0}17?_kfinVw#=4b*D0r+O ziXLAtM*=m7(m2d8!Ji1sFw*3g1M@%&Ad`Ub*J;~9%x@Tvqd_bnLG)N_QR(E{`$o~D zY--AG-@WhTa{0L&rHk1)CzqY2_Fz6!WQ+O5xy!}k!ukTsI{8v*aX!B|o29w+g<{ce zck2G8$K8F$cfD!>wbHsBacVV}+J<07&U`ys7RW3!+uGnx)i3yaHMW0g)Aws)X=cW$ zxzoGMz3*11x3{N@US&p9#Y|bCSVk}*Kv{Z`l_|Sp_r6ODqO>D;9n#pDpUY&@W;0Ub zZq;v^oNd>c@I_PGV7`1B8Inn3tGOt|J$RemXu2>8~}83Ot1{hVWuF zd>VZ3z$=mfmIg(rkUB{~3CPKmb#r76=V7gBHC)|}ovtp@I&ZPEVGTsE#t-EatB~&k z>+jD9l$`Qvta^hERy}{P1Wl!U5|#8&i4TCyvH4-@d`7P79rAYEI>*2#On?+LGyxg$ zEDYo?W{>h#RZ43-40&nYs8*F{5?^-pfz^!AdZi{{Rt`rx zb$mzunCR`;g<+V6uBKpjp((5KSz>2(0sQJ+Ke+Ds_ZZ)Ci_A{dt1jN4 zg6|br#VfmEro31FJop|Nl;cCIq({0#PW}yCv9&B%O|v34!VB8ez~XNrdjsJugqsMr z5Qe2Xe5?Bons)*01a(Di%h@YboeJak$ThQmUbvx*4;Gsdo{xuU|D2Bg8cNiD|;vggrG=Y9jV8KZdoz diff --git a/config.py b/config.py index 4225599..7daf4a1 100644 --- a/config.py +++ b/config.py @@ -3,3 +3,11 @@ import os work_path = os.getcwd() wxbot_url = "http://127.0.0.1:2022/KP" # api地址 SECRET_KEY = '鉴权秘钥' # 鉴权秘钥 + +# 异度空间 wxid_sfvsru738v3122 +# 异度星球 wxid_haqoszjheyuz22 +account_wxid="wxid_sfvsru738v3122" +chatroomId='49187487591@chatroom' #异度星球 + +appid= 'wxa55815dd741a540d', +secret='82ce78719cc6b6e4a8ff738704d5b6cc', diff --git a/main.py b/main.py index b48e3d9..b4dee6f 100644 --- a/main.py +++ b/main.py @@ -26,6 +26,7 @@ import xml.dom.minidom from pydantic import BaseModel import utils import requests +import config models.Base.metadata.create_all(bind=engine) @@ -46,35 +47,66 @@ def get_db(): async def root(): return {"message": "Hello World"} + # 微信登录 @app.get("/login") -def read_users(code,wxid, db: Session = Depends(get_db)): - print('code--',code) - new_user={} - payload = {'appid': 'wxa55815dd741a540d', 'secret': '82ce78719cc6b6e4a8ff738704d5b6cc','js_code':code,'grant_type':'authorization_code'} - res = requests.get('https://api.weixin.qq.com/sns/jscode2session', params=payload) - r=res.json() +def read_users(code, wxid, db: Session = Depends(get_db)): + print('code--', code) + new_user = {} + # 异度星球-小程序 + payload = { + 'appid': config.appid, + 'secret': config.secret, + 'js_code': code, + 'grant_type': 'authorization_code' + } + res = requests.get(config.tokenUrl, params=payload) + r = res.json() # 返回参数 session_key/unionid/errmsg/openid/errcode - print('r----',r) - openId=r['openid'] - print('openId----',openId) + print('r----', r) + openId = r['openid'] + print('openId----', openId) db_user = crud.get_user_by_openId(db, openId=openId) - print('db_user----',db_user) - + print('db_user----', db_user) + if db_user: # 返回用户完整数据 - new_user= db_user + new_user = db_user else: if wxid: # 机器人id - account_wxid='wxid_sfvsru738v3122' #异度空间 + account_wxid = config.account_wxid # 新增用户 - new_user=utils.saveWxidInfo(account_wxid, wxid,openId) + new_user = utils.saveWxidInfo(account_wxid, wxid, openId) # "errmsg":r['errmsg'],,"errcode":r['errcode'] # return {"session_key":r['session_key'],"unionid":r['unionid'],"openid":r['openid']} return new_user +# 加入微信群 +@app.get("/joingroup") +# 群-异度星球 49187487591@chatroom chatroom +def read_users(wxid, db: Session = Depends(get_db)): + # debug + # chatroomId = '49187487591@chatroom' + # 判断是否在群中 + inGroup = False + groupList = WXBotService.get_group_members_list( + robot_wxid=config.account_wxid, from_wxid=config.chatroomId) + print('groupList', groupList) + for groupItem in groupList['data']: + if groupItem['wxid'] == wxid: + inGroup = True + if inGroup: + return {"code": 200, "success": "fail", "message": "已经在群聊中"} + else: + WXBotService.add_group_members_40_more( + robot_wxid=config.account_wxid, + from_wxid=config.chatroomId, #异度星球群 + new_wxid=wxid) + print('wxid--', wxid) + return {"code": 200, "success": "ok", "message": "群聊邀请已发送"} + # 创建用户 @app.post("/users") @@ -135,7 +167,6 @@ def hellopost(requestData: dict): return json.dumps({"Code": 0}) - def kp(event_data): # unicode [\\uxxxxx] 转 emoji 表情 event_data = json.loads( @@ -230,7 +261,8 @@ def kp(event_data): kp_log = f'{type_str} 文本消息 内容:{msg}' if msg in ['加群']: # 将好友信息=>保存到数据库 - newFriendDict = WXBotService.get_friend_info(account_wxid, wxid) + newFriendDict = WXBotService.get_friend_info( + account_wxid, wxid) # print('newFriendDict[data]---',newFriendDict['data']) userClass = models.User(**(newFriendDict['data'])) # print('userClass====',type(userClass)) @@ -238,11 +270,19 @@ def kp(event_data): # 保存好友信息 # utils.saveWxidInfo(account_wxid, wxid) + + # 直接邀请加群>40 + # WXBotService.add_group_members_40_more(robot_wxid='wxid_sfvsru738v3122', + # from_wxid='49187487591@chatroom', + # new_wxid='wxid_4413224132412') + + # 发送小程序 utils.sendminiProgram(data, account_wxid, wxid, planetXml) + # if msg in ['腾讯云']: # # 发送小程序 - # utils.sendminiProgram(data, account_wxid, wxid, tengxunyunXml) + # utils.sendminiProgram(data, account_wxid, wxid, tengxunyunXml) elif msg_type == 3: # 3 图片消息 kp_log = f'{type_str} 图片消息 内容:{filepath}' @@ -318,7 +358,6 @@ def kp(event_data): f'pagepath:{xml_appmsg.findtext("weappinfo/pagepath")}' print("---------------------------kp_log", msg) - elif xml_type == '57': # 引用消息 kp_log = f'{type_str} 引用消息 内容:{msg}' elif xml_type == '2000': # 2000 转账消息