From a550423ddbe2b20ea7b39ee9911c7c9778951aec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E6=99=93=E6=99=B4?= <37541680+Suxiaoqinx@users.noreply.github.com> Date: Mon, 14 Aug 2023 00:17:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E6=96=B0=E5=A2=9Ejsonify=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=9D=A5=E6=A0=BC=E5=BC=8F=E5=8C=96json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 60 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/main.py b/main.py index ccf1758..0cb8f90 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -from flask import Flask, request, redirect +from flask import Flask, request, redirect ,jsonify import json import os import urllib.parse @@ -34,7 +34,7 @@ def ids(ids): return ids #转换文件大小 -def hum_convert(value): +def size(value): units = ["B", "KB", "MB", "GB", "TB", "PB"] size = 1024.0 for i in range(len(units)): @@ -86,12 +86,24 @@ def read_cookie(): app = Flask(__name__) -@app.route('/Song_V1') +@app.route('/Song_V1',methods=['GET','POST']) def Song_v1(): - song_ids = request.args.get('ids', default='2034742057') - level = request.args.get('level', default='hires') - type = request.args.get('type', default='text') + if request.method == 'GET': + song_ids = request.args.get('ids') + level = request.args.get('level') + type = request.args.get('type') + else: + song_ids = request.form.get('ids') + level = request.form.get('level') + type = request.form.get('type') + + if song_ids is None: + return jsonify({'error': 'ids参数为空'}), 400 + if level is None: + return jsonify({'error': 'level参数为空'}), 400 + if type is None: + return jsonify({'error': 'type参数为空'}), 400 # 网易云cookie cookies = parse_cookie(read_cookie()) @@ -130,6 +142,7 @@ def Song_v1(): data = {'c': json.dumps([{"id":jseg['data'][0]['id'],"v":0}])} resp = requests.post(url=song_names, data=data) jse = json.loads(resp.text) + if jseg['data'][0]['url'] is not None: if jse['songs']: song_url = jseg['data'][0]['url'] @@ -138,25 +151,28 @@ def Song_v1(): song_alname = jse['songs'][0]['al']['name'] song_arname = jse['songs'][0]['ar'][0]['name'] else: - return '信息获取失败!请检查解析的id是否存在歌曲' + data = jsonify({"status": 400,'msg': '信息获取不完整!'}), 400 if type == 'text': - return '歌曲名称:' + song_name + '
歌曲图片:' + song_picUrl + '
歌手:' + song_arname + '
歌曲专辑:' + song_alname + '
歌曲音质:' + music_level1(jseg['data'][0]['level']) + '
歌曲大小:' + hum_convert(jseg['data'][0]['size']) + '
音乐地址:' + song_url + data = '歌曲名称:' + song_name + '
歌曲图片:' + song_picUrl + '
歌手:' + song_arname + '
歌曲专辑:' + song_alname + '
歌曲音质:' + music_level1(jseg['data'][0]['level']) + '
歌曲大小:' + size(jseg['data'][0]['size']) + '
音乐地址:' + song_url elif type == 'down': - return redirect(song_url) + data = redirect(song_url) elif type == 'json': - data = { - "status": 200, - "name": song_name, - "pic": song_picUrl, - "ar_name": song_arname, - "al_name": song_alname, - "level": jseg['data'][0]['level'], - "size": hum_convert(jseg['data'][0]['size']), - "url": song_url - } + data = jsonify({ + "status": 200, + "name": song_name, + "pic": song_picUrl, + "ar_name": song_arname, + "al_name": song_alname, + "level":music_level1(jseg['data'][0]['level']), + "size": size(jseg['data'][0]['size']), + "url": song_url + }) else: - return '解析失败,请检查参数是否正确' - return json.dumps(data, indent=4, ensure_ascii=False) + data = jsonify({"status": 400,'msg': '解析失败!请检查参数是否完整!'}), 400 + return data if __name__ == '__main__': - app.run(debug=False,port=5000) # 默认调试模式为False关闭 端口默认为5000 + app.config['JSON_SORT_KEYS'] = False + app.config['JSON_AS_ASCII']=False + #默认调试模式为False关闭 端口默认为5000 + app.run(debug=False,port=5000)