- Netease-sync/server.js:在 processSong 中新增换源回退逻辑
- 日志会提示:
- Trying fallback source kuwo for ...
- No search hit from ...(若搜索无结果)
This commit is contained in:
@@ -551,6 +551,34 @@ async function processSong(song) {
|
||||
if (fallbackOk) return true;
|
||||
}
|
||||
|
||||
// 换源回退:kuwo -> qq
|
||||
const fallbackSources = ['kuwo', 'qq'].filter(s => s !== source);
|
||||
for (const fallbackSource of fallbackSources) {
|
||||
console.log(`[Sync] Trying fallback source ${fallbackSource} for ${song.name}`);
|
||||
const fallbackHit = await searchSongOnTuneHub(song.name, song.artist, fallbackSource);
|
||||
if (!fallbackHit?.id) {
|
||||
console.warn(`[Sync] No search hit from ${fallbackSource} for ${song.name}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const fallbackHeaders = buildDownloadHeaders(fallbackSource);
|
||||
const fallbackCandidates = buildDownloadCandidates(
|
||||
fallbackSource,
|
||||
fallbackHit.id,
|
||||
fallbackHit.url,
|
||||
fallbackHit.types
|
||||
);
|
||||
|
||||
const fallbackOk = await tryDownloadWithCandidates(
|
||||
song,
|
||||
fallbackSource,
|
||||
baseName,
|
||||
fallbackCandidates,
|
||||
fallbackHeaders
|
||||
);
|
||||
if (fallbackOk) return true;
|
||||
}
|
||||
|
||||
return false; // Failed
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user