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)