Skip to content

Commit

Permalink
feat: 将所有api请求更换为异步,提高速度
Browse files Browse the repository at this point in the history
  • Loading branch information
helloplhm-qwq committed Dec 17, 2023
1 parent 484adde commit 57977c8
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 12 deletions.
13 changes: 11 additions & 2 deletions modules/kg/musicInfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ async def getMusicInfo(hash_, use_cache = True):
'cache-ignore': [tn]
}
options['body'] = json.dumps(options['data']).replace(', ', ',').replace(': ', ':')
body = Httpx.request(url, dict(options)).json()
body = await Httpx.AsyncRequest(url, dict(options))
body = body.json()
return body['data'][0][0] if (body['data'] and body['data'][0]) else {}

async def getMusicSingerInfo(hash_, use_cache = True):
Expand Down Expand Up @@ -94,4 +95,12 @@ async def getMusicSingerInfo(hash_, use_cache = True):
'avatar': a['sizable_avatar'].format(size = 1080),
'sizable_avatar': a['sizable_avatar'],
})
return res
return res

async def getMusicMVHash(hash_, use_cache = True):
req = await Httpx.AsyncRequest('http://mobilecdnbj.kugou.com/api/v3/song/info?hash=' + hash_, {
'method': 'GET',
'cache': 86400 * 30 if use_cache else 'no-cache',
})
body = req.json()
return body['data']['mvhash'] if (body['data']) else ''
2 changes: 1 addition & 1 deletion modules/kg/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def sign(params, body = "", signkey = tools["signkey"]):
async def signRequest(url, params, options, signkey = tools["signkey"]):
params['signature'] = sign(params, options.get("body") if options.get("body") else (options.get("data") if options.get("data") else ""), signkey)
url = url + "?" + buildRequestParams(params)
return Httpx.request(url, options)
return await Httpx.AsyncRequest(url, options)

def getKey(hash_):
return utils.createMD5(hash_.lower() + tools.pidversec + tools.appid + tools.mid + tools.userid)
2 changes: 1 addition & 1 deletion modules/kw/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

async def url(songId, quality):
target_url = f'''https://bd-api.kuwo.cn/api/service/music/downloadInfo/{songId}?isMv=0&format={tools['extMap'][quality]}&br={tools['qualityMap'][quality]}'''
req = Httpx.request(target_url, {
req = await Httpx.AsyncRequest(target_url, {
'method': 'GET',
'headers': {
'User-Agent': 'okhttp/3.10.0',
Expand Down
2 changes: 1 addition & 1 deletion modules/mg/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
}

async def url(songId, quality):
req = Httpx.request(tools['url'].replace('__quality__', tools['qualityMap'][quality]).replace('__songId__', songId), {
req = await Httpx.AsyncRequest(tools['url'].replace('__quality__', tools['qualityMap'][quality]).replace('__songId__', songId), {
'method': 'GET',
'headers': {
'User-Agent': tools['useragent'],
Expand Down
10 changes: 10 additions & 0 deletions modules/tx/mv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# ----------------------------------------
# - mode: python -
# - author: helloplhm-qwq -
# - name: mv.py -
# - project: lx-music-api-server -
# - license: MIT -
# ----------------------------------------
# This file is part of the "lx-music-api-server" project.

# 没做
3 changes: 1 addition & 2 deletions modules/tx/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
# ----------------------------------------
# This file is part of the "lx-music-api-server" project.

from common.exceptions import FailedException
from common import Httpx
from common import utils
from common import config
Expand Down Expand Up @@ -62,7 +61,7 @@ async def signRequest(data, cache = False):
data = json.dumps(data)
s = sign(data)
headers = {}
return Httpx.request('https://u.y.qq.com/cgi-bin/musics.fcg?format=json&sign=' + s, {
return await Httpx.AsyncRequest('https://u.y.qq.com/cgi-bin/musics.fcg?format=json&sign=' + s, {
'method': 'POST',
'body': data,
'headers': headers,
Expand Down
9 changes: 4 additions & 5 deletions modules/wy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
async def url(songId, quality):
path = '/api/song/enhance/player/url/v1'
requestUrl = 'https://interface.music.163.com/eapi/song/enhance/player/url/v1'
req = Httpx.request(requestUrl, {
req = await Httpx.AsyncRequest(requestUrl, {
'method': 'POST',
'headers': {
'Cookie': tools['cookie'],
Expand All @@ -49,14 +49,13 @@ async def url(songId, quality):
"encodeType": "flac",
}))
})
body = json.loads(req.text)
body = req.json()
if (not body.get("data") or (not body.get("data")) or (not body.get("data")[0].get("url"))):
raise FailedException("failed")

data = body["data"][0]
if (config.read_config('module.wy.reject_unmatched_quality')):
if (data['level'] != tools['qualityMap'][quality]):
raise FailedException("reject unmatched quality")
if (data['level'] != tools['qualityMap'][quality]):
raise FailedException("reject unmatched quality")

return {
'url': data["url"].split("?")[0],
Expand Down

0 comments on commit 57977c8

Please # to comment.