Merge pull request #549 from MoYingJi/feat-unlock

refactor(unlock): 重写部分 getUnlockSongUrl
This commit is contained in:
底层用户
2025-11-11 22:39:24 +08:00
committed by GitHub

View File

@@ -84,22 +84,24 @@ export const getUnlockSongUrl = async (songData: SongType): Promise<string | nul
const artist = Array.isArray(songData.artists) ? songData.artists[0].name : songData.artists; const artist = Array.isArray(songData.artists) ? songData.artists[0].name : songData.artists;
const keyWord = songData.name + "-" + artist; const keyWord = songData.name + "-" + artist;
if (!songId || !keyWord) return null; if (!songId || !keyWord) return null;
const servers: any[] = [
"bodian",
"netease",
];
// 尝试解锁 // 尝试解锁
const results = await Promise.allSettled([ const promises = servers.map(server => unlockSongUrl(songId, keyWord, server));
unlockSongUrl(songId, keyWord, "bodian"), const results = await Promise.allSettled(promises);
unlockSongUrl(songId, keyWord, "netease"),
]);
// 解析结果 // 解析结果
const [neteaseRes, kuwoRes] = results; for (const result of results) {
if ( if (
neteaseRes.status === "fulfilled" && result.status === "fulfilled" &&
neteaseRes.value.code === 200 && result.value.code === 200 &&
neteaseRes.value.url result.value.url
) { ) {
return neteaseRes.value.url; return result.value.url;
} }
if (kuwoRes.status === "fulfilled" && kuwoRes.value.code === 200 && kuwoRes.value.url) {
return kuwoRes.value.url;
} }
return null; return null;
} catch (error) { } catch (error) {