From 0c996183803ed60ecd291bc519c27f353a2e044f Mon Sep 17 00:00:00 2001 From: IamFurina Date: Sun, 20 Jul 2025 17:50:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(proxyUrl):=20=E6=94=AF=E6=8C=81=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E9=85=B7=E6=88=91=E8=B5=84=E6=BA=90,=20=E9=9C=80?= =?UTF-8?q?=E8=87=AA=E5=B7=B1=E9=83=A8=E7=BD=B2=E5=8F=8D=E5=90=91=E4=BB=A3?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 7 ++++++- module/song_url_match.js | 2 ++ module/song_url_unblock.js | 2 ++ module/song_url_v1.js | 5 +++++ server.js | 7 +++++-- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.env b/.env index da4e6b9..1996de0 100644 --- a/.env +++ b/.env @@ -1,7 +1,12 @@ -# CORS资源共享设置 +### CORS资源共享设置 ## 如果你需要配置, 请取消下面的注释并设置具体的域名 # CORS_ALLOW_ORIGIN = "*" +### 代理设置 +## 如果你需要配置, 请取消下面的注释并设置具体的代理地址 +PROXY_URL = "https://your-proxy-url.com/?proxy=" + + ### UnblockNeteaseMusic 设置项 ## 启用全局解灰, 无论是否调用参数都会使用解灰(推荐开启) ENABLE_GENERAL_UNBLOCK = true diff --git a/module/song_url_match.js b/module/song_url_match.js index 0f699ac..f861ded 100644 --- a/module/song_url_match.js +++ b/module/song_url_match.js @@ -9,7 +9,9 @@ module.exports = async (query, request) => { const match = require("@unblockneteasemusic/server") const source = ['pyncmd', 'kuwo', 'qq', 'migu', 'kugou'] const result = await match(query.id, source) + const proxy = process.env.PROXY_URL; console.log("[OK] 开始解灰", query.id, result) + if (result.url.includes('kuwo')) { result.proxyUrl = proxy + result.url } return { status: 200, body: { diff --git a/module/song_url_unblock.js b/module/song_url_unblock.js index 3f2c07f..ba3c684 100644 --- a/module/song_url_unblock.js +++ b/module/song_url_unblock.js @@ -9,7 +9,9 @@ module.exports = async (query, request) => { const match = require("@unblockneteasemusic/server") const source = ['pyncmd', 'kuwo', 'qq', 'migu', 'kugou'] const result = await match(query.id, source) + const proxy = process.env.PROXY_URL; console.log("[OK] 开始解灰", query.id, result) + if (result.url.includes('kuwo')) { result.proxyUrl = proxy + result.url } return { status: 200, body: { diff --git a/module/song_url_v1.js b/module/song_url_v1.js index 888faf4..80dd2a9 100644 --- a/module/song_url_v1.js +++ b/module/song_url_v1.js @@ -16,6 +16,10 @@ module.exports = async (query, request) => { if (query.unblock === 'true') { try { const result = await match(query.id, source) + console.log('[OK] 开始解灰', query.id, result) + if (result.url.includes('kuwo')) { + var proxyUrl = process.env.PROXY_URL + result.url + } let url = Array.isArray(result) ? (result[0]?.url || result[0]) : (result.url || result) if (url) { return { @@ -30,6 +34,7 @@ module.exports = async (query, request) => { level: query.level, freeTrialInfo: 'unblock', fee: 0, + proxyUrl: proxyUrl || '', }, ], }, diff --git a/server.js b/server.js index 1fd9aff..3c4f1ee 100644 --- a/server.js +++ b/server.js @@ -258,10 +258,13 @@ async function consturctServer(moduleDefs) { song.url = url song.freeTrialInfo = 'null' console.log("解灰成功!") - } + } + if (song.url.includes('kuwo')) { + const proxy = process.env.PROXY_URL; + if (proxy) {song.proxyUrl = proxy + song.url} + } } - const cookies = moduleResponse.cookie if (!query.noCookie) { if (Array.isArray(cookies) && cookies.length > 0) {