from typing import Union from fastapi import FastAPI,Header from urllib.parse import unquote from flashSMS import sendFlash from tgMesaage import sendTg import re app = FastAPI() # 正则查找11位手机号 def findPhoneNum(text): pattern = re.compile(r"1[356789]\d{9}") # strs = '小明的手机号是13987692110,你明天打给他' result = pattern.findall(text) print(result) # ['13987692110'] if len(result)>0: return result[0] else: return None @app.get("/") #def read_root(): # return {"Hello": "World"} def read_items(appid: Union[str, None] = Header(default=None),bid: Union[str, None] = Header(default=None),requestid: Union[str, None] = Header(default=None),uid: Union[str, None] = Header(default=None)): print("console :,","appid", appid,"bid", bid,"requestid", requestid,"uid", uid) return {"appid": appid,"bid": bid,"requestid": requestid,"uid": uid} # 微信对话-用户输入 @app.get("/input") async def getphonenum(inputArguments: Union[str, None] = None,appid: Union[str, None] = Header(default=None),bid: Union[str, None] = Header(default=None),requestid: Union[str, None] = Header(default=None),uid: Union[str, None] = Header(default=None)): print('inputArguments',inputArguments) # 要处理url编码问题decode try: inputArguments = unquote(inputArguments, 'utf-8') except: inputArguments='' # 正则获取11位手机号 phonenumber=findPhoneNum(inputArguments) print('phonenumber',phonenumber) # # phonenumber='13243889782' if phonenumber is not None: warntext='[异度世界],微信加群验证码:3399' sendTg(f'用户手机号{phonenumber},开始发送验证码') # 发送闪信 sendFlash(phonenumber,warntext) else: sendTg(f'用户输入:{inputArguments},手机号不正确') # uid:唯一标识用户的openid print("appid", appid,"bid",bid,"requestid", requestid,"uid", uid) # 存储uid和手机号 return {"appid": appid,"bid": bid,"requestid": requestid,"uid": uid,'inputArguments':inputArguments}