diff --git a/api.json b/api.json index e8f4024..5937965 100644 --- a/api.json +++ b/api.json @@ -12,5 +12,31 @@ "phone_num": "{phone}", "area_code": "86" } + }, + { + "desc": "彩云小译", + "url": "https://biz.caiyunapp.com/v1/send_sms_code", + "method": "POST", + "header": { + "Referer": "https://fanyi.caiyunapp.com/", + "Cy-Token": "token 9876032166" + }, + "data": { + "phone_num": "{phone}", + "area_code": "86" + } + }, + { + "desc": "彩云小译", + "url": "https://biz.caiyunapp.com/v1/send_sms_code", + "method": "POST", + "header": { + "Referer": "https://fanyi.caiyunapp.com/", + "Cy-Token": "token 9876032166" + }, + "data": { + "phone_num": "{phone}", + "area_code": "86" + } } ] \ No newline at end of file diff --git a/apiback/api_back_2022_04_03_21_02_12.json b/apiback/api_back_2022_04_03_21_02_12.json new file mode 100644 index 0000000..2fae989 --- /dev/null +++ b/apiback/api_back_2022_04_03_21_02_12.json @@ -0,0 +1 @@ +[{"desc": "С", "url": "https://biz.caiyunapp.com/v1/send_sms_code", "method": "POST", "header": {"Referer": "https://fanyi.caiyunapp.com/", "Cookie": "UM_distinctid=17fd5c7a9ba69a-0200a7005bf45a-56171958-146d15-17fd5c7a9bb749; _gid=GA1.2.2046680529.1648971157; _gat_gtag_UA_185151443_2=1; _ga=GA1.2.44459633.1648559084; _ga_65TZCJSDBD=GS1.1.1648971156.4.1.1648971164.0; _ga_R9YPR75N68=GS1.1.1648971156.4.1.1648971164.52", "Cy-Token": "token 9876032166"}, "data": {"phone_num": "{phone}", "area_code": "86"}}, {"desc": "С", "url": "https://biz.caiyunapp.com/v1/send_sms_code", "method": "POST", "header": {"Referer": "https://fanyi.caiyunapp.com/", "Cy-Token": "token 9876032166"}, "data": {"phone_num": "{phone}", "area_code": "86"}}, {"desc": "С", "url": "https://biz.caiyunapp.com/v1/send_sms_code", "method": "POST", "header": {"Referer": "https://fanyi.caiyunapp.com/", "Cy-Token": "token 9876032166"}, "data": {"phone_num": "{phone}", "area_code": "86"}}] \ No newline at end of file diff --git a/flask_app/README.md b/flask_app/README.md new file mode 100644 index 0000000..8f6235b --- /dev/null +++ b/flask_app/README.md @@ -0,0 +1,3 @@ +# Flask APP For SMSBoom + +用于添加测试更改短信接口的 Flask 项目,方便短信接口的维护. \ No newline at end of file diff --git a/flask_app/__pycache__/utils.cpython-38.pyc b/flask_app/__pycache__/utils.cpython-38.pyc new file mode 100644 index 0000000..38f49c5 Binary files /dev/null and b/flask_app/__pycache__/utils.cpython-38.pyc differ diff --git a/flask_app/app.py b/flask_app/app.py new file mode 100644 index 0000000..c0785bb --- /dev/null +++ b/flask_app/app.py @@ -0,0 +1,113 @@ +# encoding=utf8 +import json +import time +from flask import Flask, make_response, request, jsonify +from flask_cors import CORS +from urllib3 import disable_warnings + +from utils import * + +disable_warnings() + +app = Flask(__name__) +CORS(app, supports_credentials=True, resources="/*") # 跨域 + + +def request_parse(req_data: request) -> dict: + '''解析请求数据并以字典的形式返回''' + if req_data.method == 'POST': + data = req_data.form + + elif req_data.method == 'GET': + data = req_data.args + + return dict(data) + + +class BaseResponse(BaseModel): + """返回的响应""" + status: int = 0 # 状态码 0-->成功 1-->失败 + msg: str = "前端显示的简短信息" + data: Optional[str] + + @property + def resp(self): + '''BaseModel类型返回json''' + response = make_response( + json.dumps( + self.dict(), + ensure_ascii=False, + sort_keys=False + ), + ) + response.mimetype = 'application/json' + # 跨域设置 + response.headers['Access-Control-Allow-Origin'] = '*' + response.headers['Access-Control-Allow-Methods'] = 'OPTIONS,HEAD,GET,POST' + response.headers['Access-Control-Allow-Headers'] = 'x-requested-with' + return response + + +@app.route("/testapi/", methods=['POST']) +def testapi(): + brs = BaseResponse() + # 需要传入 json 数据 + try: + jsonData = request.get_json() + api = API(**jsonData) + phone = jsonData.get('phone') + if not phone: + raise ValueError("参数 phone 没有!") + try: + resp = test_resq(api, phone) + brs.status = 0 + brs.msg = f"请求成功!{resp}" + brs.data = resp.text + except Exception as why: + brs.status = 1 + brs.msg = f"请求失败:{why}" + except Exception as why: + brs.status = 1 + brs.msg = f"参数有误:{why}" + return brs.resp + + +@app.route("/submitapi/", methods=['POST']) +def submitapi(): + """提交API到json文件""" + # 需要传入 json 数据 + jsonData = request.get_json() + api = API(**jsonData) + data = json.loads(json_path.read_text(encoding='utf8')) + with open(json_path, mode="w", encoding="utf8") as j: + try: + data.append(api.dict()) + json.dump(data, j, ensure_ascii=False, sort_keys=False) + return BaseResponse(status=0, msg="写入成功!").resp + except Exception as why: + return BaseResponse(status=1, msg=f"写入失败!{why}").resp + + +@app.route("/backapi/", methods=['GET']) +def backjson(): + """备份json文件""" + try: + timeStruct = time.localtime(int(time.time())) + strTime = time.strftime("%Y_%m_%d_%H_%M_%S", timeStruct) + Path.mkdir(Path(json_path.parent, 'apiback', exist_ok=True)) + json_back_path = Path(json_path.parent, 'apiback', + f"api_back_{strTime}.json") + with open(json_back_path, mode="w") as j: + j_data = json.loads(json_path.read_text(encoding='utf8')) + json.dump(j_data, j, ensure_ascii=False, sort_keys=False) + return BaseResponse(status=0, msg="备份成功!").resp + except Exception as why: + return BaseResponse(status=1, msg=f"备份失败{why}").resp + +@app.route("/downloadapi/", methods=['GET']) +def downloadapi(): + """下载接口文件""" + return json_path.read_text(encoding='utf8') + + +app.run(host="0.0.0.0", port=1098, debug=True) diff --git a/flask_app/templates/admin.html b/flask_app/templates/admin.html new file mode 100644 index 0000000..5dea57a --- /dev/null +++ b/flask_app/templates/admin.html @@ -0,0 +1,205 @@ + + + +
+ + + +{{ api }}
+