sync-server/server.js:在 type=url 的 JSON 解析里增加多种 URL 结构识别,拿到链接后继续服务端跟随重定向并直通流媒

体,避免把 JSON 返回给 <audio>。
This commit is contained in:
史悦
2026-01-14 17:33:07 +08:00
parent 9b737012e9
commit 932826aeca

View File

@@ -400,8 +400,24 @@ function proxyRequest(targetUrl, req, res) {
proxyRes.on('end', () => { proxyRes.on('end', () => {
try { try {
const parsedBody = JSON.parse(body); const parsedBody = JSON.parse(body);
if (parsedBody && parsedBody.url) { const extractUrl = (payload) => {
requestStream(parsedBody.url, 1); if (!payload || typeof payload !== 'object') return null;
if (typeof payload.url === 'string') return payload.url;
if (typeof payload.data === 'string') return payload.data;
if (payload.data && typeof payload.data === 'object') {
if (typeof payload.data.url === 'string') return payload.data.url;
if (typeof payload.data.link === 'string') return payload.data.link;
if (payload.data.data && typeof payload.data.data.url === 'string') return payload.data.data.url;
if (Array.isArray(payload.data) && payload.data[0] && typeof payload.data[0].url === 'string') {
return payload.data[0].url;
}
}
if (payload.result && typeof payload.result.url === 'string') return payload.result.url;
return null;
};
const resolvedUrl = extractUrl(parsedBody);
if (resolvedUrl) {
requestStream(url.resolve(targetUrl, resolvedUrl), 1);
return; return;
} }
} catch (e) { } catch (e) {