diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..6667bb1 --- /dev/null +++ b/index.mjs @@ -0,0 +1 @@ +import './app.js' diff --git a/module/song_url_ncmget.js b/module/song_url_ncmget.js index a2c5852..f343faa 100644 --- a/module/song_url_ncmget.js +++ b/module/song_url_ncmget.js @@ -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 { code: 200 } } diff --git a/public/static/docs.png b/public/static/docs.png index fab73b9..739b5f2 100644 Binary files a/public/static/docs.png and b/public/static/docs.png differ diff --git a/public/static/screenshot1.png b/public/static/module_test.png similarity index 100% rename from public/static/screenshot1.png rename to public/static/module_test.png diff --git a/server.js b/server.js index 3bc25ba..52c36e6 100644 --- a/server.js +++ b/server.js @@ -263,8 +263,9 @@ async function consturctServer(moduleDefs) { }) logger.info(`Request Success: ${decode(req.originalUrl)}`) + // 夹带私货部分:如果开启了通用解锁,并且是获取歌曲URL的接口,则尝试解锁(如果需要的话)ヾ(≧▽≦*)o if ( - (req.baseUrl === '/song/url/v1' || req.baseUrl === '/song/url') && + req.baseUrl === '/song/url/v1' && process.env.ENABLE_GENERAL_UNBLOCK === 'true' ) { const song = moduleResponse.body.data[0] @@ -279,7 +280,7 @@ async function consturctServer(moduleDefs) { logger.info('Starting unblock(uses general unblock):', req.query.id) const result = await matchID(req.query.id) song.url = result.data.url - song.freeTrialInfo = 'null' + song.freeTrialInfo = null logger.info('Unblock success! url:', song.url) } if (song.url && song.url.includes('kuwo')) {