mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-10-20 22:51:23 +08:00
Merge branch 'NeteaseCloudMusicApiEnhanced:main' into main
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// 评论统计数据
|
||||
// type: 0=歌曲 1=MV 2=歌单 3=专辑 4=电台节目 5=视频 6=动态 7=电台
|
||||
// ids: 资源 ID 列表,多个用逗号分隔,如 "123,456"
|
||||
const { resourceTypeMap } = require('../util/config.json')
|
||||
const createOption = require('../util/option.js')
|
||||
|
||||
// 从 resourceTypeMap 的前缀值中提取网易云内部资源类型编号
|
||||
// 例如 "R_SO_4_" -> "4", "A_DR_14_" -> "14"
|
||||
const resourceTypeIdMap = Object.fromEntries(
|
||||
Object.entries(resourceTypeMap).map(([key, prefix]) => [
|
||||
key,
|
||||
prefix.replace(/_$/, '').split('_').pop(),
|
||||
]),
|
||||
)
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const ids = String(query.ids || query.id || '')
|
||||
.split(',')
|
||||
.map((id) => id.trim())
|
||||
.filter(Boolean)
|
||||
|
||||
return request(
|
||||
`/api/resource/commentInfo/list`,
|
||||
{
|
||||
resourceType: resourceTypeIdMap[String(query.type || 0)],
|
||||
resourceIds: JSON.stringify(ids),
|
||||
},
|
||||
createOption(query, 'weapi'),
|
||||
)
|
||||
}
|
||||
@@ -1,77 +1,5 @@
|
||||
// GD音乐台get(适配SPlayer的UNM-Server)
|
||||
// 感谢来自GD Studio的开发API
|
||||
// https://music.gdstudio.xyz/
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
// 夹带私货的东西就不要放在这里了
|
||||
|
||||
module.exports = async (query, request) => {
|
||||
try {
|
||||
const { id, br = '320' } = query
|
||||
if (!id) {
|
||||
return {
|
||||
status: 400,
|
||||
body: {
|
||||
code: 400,
|
||||
message: '缺少必要参数 id',
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
const validBR = ['128', '192', '320', '740', '999']
|
||||
// const covertBR = ['128000', '192000', '320000','740000', '999000']
|
||||
if (!validBR.includes(br)) {
|
||||
return {
|
||||
status: 400,
|
||||
body: {
|
||||
code: 400,
|
||||
message: '无效音质参数',
|
||||
allowed_values: validBR,
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const apiUrl = new URL('https://music-api.gdstudio.xyz/api.php')
|
||||
apiUrl.searchParams.append('types', 'url')
|
||||
apiUrl.searchParams.append('id', id)
|
||||
apiUrl.searchParams.append('br', br)
|
||||
|
||||
const response = await fetch(apiUrl.toString())
|
||||
if (!response.ok) throw new Error(`API 响应状态: ${response.status}`)
|
||||
const result = await response.json()
|
||||
|
||||
// 代理逻辑
|
||||
const useProxy = process.env.ENABLE_PROXY || false
|
||||
const proxy = process.env.PROXY_URL
|
||||
if (useProxy && result.url && result.url.includes('kuwo')) {
|
||||
result.proxyUrl = proxy + result.url.replace(/^http:\/\//, 'http/')
|
||||
}
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: {
|
||||
code: 200,
|
||||
message: '请求成功',
|
||||
data: {
|
||||
id,
|
||||
br,
|
||||
url: result.url,
|
||||
...(proxy && result.proxyUrl ? { proxyUrl: result.proxyUrl } : {}),
|
||||
},
|
||||
},
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error in song_url_ncmget:', error)
|
||||
return {
|
||||
status: 500,
|
||||
body: {
|
||||
code: 500,
|
||||
message: '服务器处理请求失败',
|
||||
...(process.env.NODE_ENV === 'development'
|
||||
? { error: error.message }
|
||||
: {}),
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
return { status: 200, body: { code: 200, data: [] } }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user