优化自定义源调用处理逻辑

This commit is contained in:
lyswhut
2024-01-30 17:40:23 +08:00
parent da2d3237b6
commit 7893814da4
7 changed files with 49 additions and 25 deletions
+7 -4
View File
@@ -53,7 +53,7 @@ export const getOtherSource = async(musicInfo: LX.Music.MusicInfo | LX.Download.
let timeout: null | NodeJS.Timeout = setTimeout(() => {
timeout = null
reject(new Error('find music timeout'))
}, 20_000)
}, 15_000)
musicSdk.findMusic(searchMusicInfo).then((otherSource) => {
resolve(otherSource.map(toNewMusicInfo) as LX.Music.MusicInfoOnline[])
}).catch(reject).finally(() => {
@@ -166,6 +166,8 @@ export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggl
quality: LX.Quality
isFromCache: boolean
}> => {
if (!await window.lx.apiInitPromise[0]) throw new Error('source init failed')
let musicInfo: LX.Music.MusicInfoOnline | null = null
let itemQuality: LX.Quality | null = null
// eslint-disable-next-line no-cond-assign
@@ -191,7 +193,7 @@ export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggl
} catch (err: any) {
reqPromise = Promise.reject(err)
}
retryedSource.includes(musicInfo.source)
// retryedSource.includes(musicInfo.source)
// eslint-disable-next-line @typescript-eslint/promise-function-async
return reqPromise.then(({ url, type }: { url: string, type: LX.Quality }) => {
return { musicInfo, url, quality: type, isFromCache: false }
@@ -218,6 +220,7 @@ export const handleGetOnlineMusicUrl = async({ musicInfo, quality, onToggleSourc
quality: LX.Quality
isFromCache: boolean
}> => {
if (!await window.lx.apiInitPromise[0]) throw new Error('source init failed')
// console.log(musicInfo.source)
const targetQuality = quality ?? getPlayQuality(appSetting['player.highQuality'], musicInfo)
@@ -281,7 +284,7 @@ export const getOnlineOtherSourcePicUrl = async({ musicInfos, onToggleSource, is
} catch (err: any) {
reqPromise = Promise.reject(err)
}
retryedSource.includes(musicInfo.source)
// retryedSource.includes(musicInfo.source)
return reqPromise.then((url: string) => {
return { musicInfo, url, isFromCache: false }
// eslint-disable-next-line @typescript-eslint/promise-function-async
@@ -368,7 +371,7 @@ export const getOnlineOtherSourceLyricInfo = async({ musicInfos, onToggleSource,
} catch (err: any) {
reqPromise = Promise.reject(err)
}
retryedSource.includes(musicInfo.source)
// retryedSource.includes(musicInfo.source)
// eslint-disable-next-line @typescript-eslint/promise-function-async
return reqPromise.then((lyricInfo: LX.Music.LyricInfo) => {
return existTimeExp.test(lyricInfo.lyric) ? {