mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-10-20 14:41:23 +08:00
代码格式化
This commit is contained in:
+69
-74
@@ -16,7 +16,7 @@ const chooseUserAgent = (ua = false) => {
|
||||
// iOS with qq micromsg
|
||||
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML like Gecko) Mobile/14A456 QQ/6.5.7.408 V1_IPH_SQ_6.5.7_1_APP_A Pixel/750 Core/UIWebView NetType/4G Mem/103',
|
||||
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.15(0x17000f27) NetType/WIFI Language/zh',
|
||||
// Android -> Huawei Xiaomi
|
||||
// Android -> Huawei Xiaomi
|
||||
'Mozilla/5.0 (Linux; Android 9; PCT-AL10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.311 Mobile Safari/537.36',
|
||||
'Mozilla/5.0 (Linux; U; Android 9; zh-cn; Redmi Note 8 Build/PKQ1.190616.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/12.5.22',
|
||||
// Android + qq micromsg
|
||||
@@ -31,12 +31,15 @@ const chooseUserAgent = (ua = false) => {
|
||||
// Windows 10 Firefox / Chrome / Edge
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0',
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.30 Safari/537.36',
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/13.10586'
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/13.10586',
|
||||
// Linux 就算了
|
||||
]
|
||||
],
|
||||
}
|
||||
let realUserAgentList = userAgentList[ua] || (userAgentList.mobile).concat(userAgentList.pc)
|
||||
return (['mobile', 'pc', false].indexOf(ua) > -1) ? realUserAgentList[Math.floor(Math.random() * realUserAgentList.length)] : ua
|
||||
let realUserAgentList =
|
||||
userAgentList[ua] || userAgentList.mobile.concat(userAgentList.pc)
|
||||
return ['mobile', 'pc', false].indexOf(ua) > -1
|
||||
? realUserAgentList[Math.floor(Math.random() * realUserAgentList.length)]
|
||||
: ua
|
||||
}
|
||||
const createRequest = (method, url, data, options) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -45,16 +48,15 @@ const createRequest = (method, url, data, options) => {
|
||||
headers['Content-Type'] = 'application/x-www-form-urlencoded'
|
||||
if (url.includes('music.163.com'))
|
||||
headers['Referer'] = 'https://music.163.com'
|
||||
if (options.realIP)
|
||||
headers['X-Real-IP'] = options.realIP
|
||||
if (options.realIP) headers['X-Real-IP'] = options.realIP
|
||||
// headers['X-Real-IP'] = '118.88.88.88'
|
||||
if (typeof options.cookie === 'object')
|
||||
headers['Cookie'] = Object.keys(options.cookie)
|
||||
.map(
|
||||
key =>
|
||||
(key) =>
|
||||
encodeURIComponent(key) +
|
||||
'=' +
|
||||
encodeURIComponent(options.cookie[key])
|
||||
encodeURIComponent(options.cookie[key]),
|
||||
)
|
||||
.join('; ')
|
||||
else if (options.cookie) headers['Cookie'] = options.cookie
|
||||
@@ -71,35 +73,35 @@ const createRequest = (method, url, data, options) => {
|
||||
data = encrypt.linuxapi({
|
||||
method: method,
|
||||
url: url.replace(/\w*api/, 'api'),
|
||||
params: data
|
||||
params: data,
|
||||
})
|
||||
headers['User-Agent'] =
|
||||
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36'
|
||||
url = 'https://music.163.com/api/linux/forward'
|
||||
} else if (options.crypto === 'eapi') {
|
||||
const cookie = options.cookie || {};
|
||||
const cookie = options.cookie || {}
|
||||
const csrfToken = cookie['__csrf'] || ''
|
||||
const header = {
|
||||
'osver': cookie.osver, //系统版本
|
||||
'deviceId': cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7')
|
||||
'appver': cookie.appver || '6.1.1', // app版本
|
||||
'versioncode': cookie.versioncode || '140', //版本号
|
||||
'mobilename': cookie.mobilename, //设备model
|
||||
'buildver': cookie.buildver || Date.now().toString().substr(0, 10),
|
||||
'resolution': cookie.resolution || '1920x1080', //设备分辨率
|
||||
'__csrf': csrfToken,
|
||||
'os': cookie.os || 'android',
|
||||
'channel': cookie.channel,
|
||||
'requestId': `${Date.now()}_${Math.floor(Math.random() * 1000).toString().padStart(4, '0')}`
|
||||
osver: cookie.osver, //系统版本
|
||||
deviceId: cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7')
|
||||
appver: cookie.appver || '6.1.1', // app版本
|
||||
versioncode: cookie.versioncode || '140', //版本号
|
||||
mobilename: cookie.mobilename, //设备model
|
||||
buildver: cookie.buildver || Date.now().toString().substr(0, 10),
|
||||
resolution: cookie.resolution || '1920x1080', //设备分辨率
|
||||
__csrf: csrfToken,
|
||||
os: cookie.os || 'android',
|
||||
channel: cookie.channel,
|
||||
requestId: `${Date.now()}_${Math.floor(Math.random() * 1000)
|
||||
.toString()
|
||||
.padStart(4, '0')}`,
|
||||
}
|
||||
if (cookie.MUSIC_U) header['MUSIC_U'] = cookie.MUSIC_U
|
||||
if (cookie.MUSIC_A) header['MUSIC_A'] = cookie.MUSIC_A
|
||||
headers['Cookie'] = Object.keys(header)
|
||||
.map(
|
||||
key =>
|
||||
encodeURIComponent(key) +
|
||||
'=' +
|
||||
encodeURIComponent(header[key])
|
||||
(key) =>
|
||||
encodeURIComponent(key) + '=' + encodeURIComponent(header[key]),
|
||||
)
|
||||
.join('; ')
|
||||
data.header = header
|
||||
@@ -112,7 +114,7 @@ const createRequest = (method, url, data, options) => {
|
||||
method: method,
|
||||
url: url,
|
||||
headers: headers,
|
||||
body: queryString.stringify(data)
|
||||
body: queryString.stringify(data),
|
||||
}
|
||||
|
||||
if (options.crypto === 'eapi') settings.encoding = null
|
||||
@@ -123,62 +125,55 @@ const createRequest = (method, url, data, options) => {
|
||||
settings.proxy = options.proxy
|
||||
}
|
||||
|
||||
request(
|
||||
settings,
|
||||
(err, res, body) => {
|
||||
if (err) {
|
||||
answer.status = 502
|
||||
answer.body = { code: 502, msg: err.stack }
|
||||
reject(answer)
|
||||
} else {
|
||||
answer.cookie = (res.headers['set-cookie'] || []).map(x =>
|
||||
x.replace(/\s*Domain=[^(;|$)]+;*/, '')
|
||||
)
|
||||
try {
|
||||
if (options.crypto === 'eapi') {
|
||||
|
||||
zlib.unzip(body, function (err, buffer) {
|
||||
const _buffer = err ? body : buffer
|
||||
request(settings, (err, res, body) => {
|
||||
if (err) {
|
||||
answer.status = 502
|
||||
answer.body = { code: 502, msg: err.stack }
|
||||
reject(answer)
|
||||
} else {
|
||||
answer.cookie = (res.headers['set-cookie'] || []).map((x) =>
|
||||
x.replace(/\s*Domain=[^(;|$)]+;*/, ''),
|
||||
)
|
||||
try {
|
||||
if (options.crypto === 'eapi') {
|
||||
zlib.unzip(body, function (err, buffer) {
|
||||
const _buffer = err ? body : buffer
|
||||
try {
|
||||
try {
|
||||
try {
|
||||
answer.body = JSON.parse(encrypt.decrypt(_buffer).toString())
|
||||
answer.status = answer.body.code || res.statusCode
|
||||
} catch (e) {
|
||||
answer.body = JSON.parse(_buffer.toString())
|
||||
answer.status = res.statusCode
|
||||
}
|
||||
answer.body = JSON.parse(encrypt.decrypt(_buffer).toString())
|
||||
answer.status = answer.body.code || res.statusCode
|
||||
} catch (e) {
|
||||
answer.body = _buffer.toString()
|
||||
answer.body = JSON.parse(_buffer.toString())
|
||||
answer.status = res.statusCode
|
||||
}
|
||||
answer.status =
|
||||
100 < answer.status && answer.status < 600 ? answer.status : 400
|
||||
if (answer.status === 200) resolve(answer)
|
||||
else reject(answer)
|
||||
});
|
||||
return false
|
||||
|
||||
} else {
|
||||
|
||||
answer.body = JSON.parse(body)
|
||||
answer.status = answer.body.code || res.statusCode
|
||||
if (answer.body.code === 502) {
|
||||
answer.status = 200
|
||||
} catch (e) {
|
||||
answer.body = _buffer.toString()
|
||||
answer.status = res.statusCode
|
||||
}
|
||||
answer.status =
|
||||
100 < answer.status && answer.status < 600 ? answer.status : 400
|
||||
if (answer.status === 200) resolve(answer)
|
||||
else reject(answer)
|
||||
})
|
||||
return false
|
||||
} else {
|
||||
answer.body = JSON.parse(body)
|
||||
answer.status = answer.body.code || res.statusCode
|
||||
if (answer.body.code === 502) {
|
||||
answer.status = 200
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
answer.body = body
|
||||
answer.status = res.statusCode
|
||||
}
|
||||
|
||||
answer.status =
|
||||
100 < answer.status && answer.status < 600 ? answer.status : 400
|
||||
if (answer.status == 200) resolve(answer)
|
||||
else reject(answer)
|
||||
} catch (e) {
|
||||
answer.body = body
|
||||
answer.status = res.statusCode
|
||||
}
|
||||
|
||||
answer.status =
|
||||
100 < answer.status && answer.status < 600 ? answer.status : 400
|
||||
if (answer.status == 200) resolve(answer)
|
||||
else reject(answer)
|
||||
}
|
||||
)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user