diff --git a/__pycache__/app.cpython-311.pyc b/__pycache__/app.cpython-311.pyc index 06ba364..90d5aae 100644 Binary files a/__pycache__/app.cpython-311.pyc and b/__pycache__/app.cpython-311.pyc differ diff --git a/app.py b/app.py index 6aecbea..6f24b27 100644 --- a/app.py +++ b/app.py @@ -4,9 +4,40 @@ from urllib.parse import unquote from flashSMS import sendFlash from tgMesaage import sendTg import re +import pickle +import os app = FastAPI() + +# 判断uid是否存在 +def findUid(uiddata,phoneNum): + isFind=False + newDict={} + if(os.path.exists("data.txt")): + # print('文件存在') + with open("data.txt", "rb") as f: + newDict=pickle.load(f) + if newDict[uiddata] is not None: + print('newDict[uid]',newDict[uiddata]) + isFind= True + else: + newDict[uiddata] = phoneNum + with open("data.txt", "wb") as f: + pickle.dump(newDict, f) + isFind= False + return isFind + else: + # print('文件不存在') + isFind= False + newDict[uiddata] = phoneNum + with open("data.txt", "wb") as f: + pickle.dump(newDict, f) + return isFind + + +# findUid('test','13243889782') + # 正则查找11位手机号 def findPhoneNum(text): pattern = re.compile(r"1[356789]\d{9}") @@ -30,6 +61,9 @@ def read_items(appid: Union[str, None] = Header(default=None),bid: Union[str, No @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) + # uid:唯一标识用户的openid + print("appid", appid,"bid",bid,"requestid", requestid,"uid", uid) + uid='wxx' # 要处理url编码问题decode try: inputArguments = unquote(inputArguments, 'utf-8') @@ -42,11 +76,15 @@ async def getphonenum(inputArguments: Union[str, None] = None,appid: Union[str, if phonenumber is not None: warntext='[异度世界],微信加群验证码:3399' sendTg(f'用户手机号{phonenumber},开始发送验证码') - # 发送闪信 - sendFlash(phonenumber,warntext) + # 判断用户uid是都触发过短信,不允许触发第2次 + if findUid(uid,phonenumber) is True: + print('用户uid已存在,不触发短信') + else: + # 发送闪信 + 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} \ No newline at end of file diff --git a/data.txt b/data.txt new file mode 100644 index 0000000..ab6d1e3 Binary files /dev/null and b/data.txt differ