From ee0c894d054d5fc05e1b2461e977b77fc10ad321 Mon Sep 17 00:00:00 2001 From: helloplhm-qwq Date: Tue, 30 Jan 2024 22:58:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/lx_script.py | 5 ++--- main.py | 10 +++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/common/lx_script.py b/common/lx_script.py index 6eae50e..40fd5f4 100644 --- a/common/lx_script.py +++ b/common/lx_script.py @@ -10,7 +10,6 @@ from . import Httpx from . import config from . import scheduler -from .variable import iscn from .log import log from aiohttp.web import Response import ujson as json @@ -70,12 +69,12 @@ async def get_script(): async def generate_script_response(request): if (request.query.get('key') != config.read_config('security.key.value') and config.read_config('security.key.enable')): - return Response(body = json.dumps({'code': 6, 'msg': 'key验证失败', 'data': None}, indent=2, ensure_ascii=False), content_type='application/json', status = 400) + return {'code': 6, 'msg': 'key验证失败', 'data': None}, 403 try: with open('./lx-music-source-example.js', 'r', encoding='utf-8') as f: script = f.read() except: - return Response(body = json.dumps({'code': 4, 'msg': '本地无源脚本', 'data': None}, indent=2, ensure_ascii=False), content_type='application/json', status = 500) + return {'code': 4, 'msg': '本地无源脚本', 'data': None}, 400 scriptLines = script.split('\n') newScriptLines = [] for line in scriptLines: diff --git a/main.py b/main.py index ca9a800..12e8ba4 100644 --- a/main.py +++ b/main.py @@ -91,10 +91,14 @@ async def handle_before_request(app, handler): return handleResult({'code': 6, 'msg': '未找到您所请求的资源', 'data': None}, 404) resp = await handler(request) - if (isinstance(resp, str)): - resp = Response(body = resp, content_type='text/plain', status = 200) - elif (isinstance(resp, (list, dict))): + if (isinstance(resp, (str, list, dict))): resp = handleResult(resp) + elif (isinstance(resp, tuple) and len(resp) == 2): # flask like response + body, status = resp + if (isinstance(body, (str, list, dict))): + resp = handleResult(body, status) + else: + resp = Response(body = str(body), content_type='text/plain', status = status) elif (not isinstance(resp, Response)): resp = Response(body = str(resp), content_type='text/plain', status = 200) aiologger.info(f'{request.remote_addr + ("" if (request.remote == request.remote_addr) else f"|proxy@{request.remote}")} - {request.method} "{request.path}", {resp.status}')