新增播放自动换源功能

This commit is contained in:
lyswhut
2021-01-09 00:45:15 +08:00
parent 6b7d2ea657
commit 9a1a537bfd
21 changed files with 90 additions and 8 deletions
+43
View File
@@ -56,4 +56,47 @@ export default {
}
},
supportQuality,
async findMusic(musicInfo) {
const tasks = []
for (const source of sources.sources) {
if (!sources[source.id].musicSearch || source.id === musicInfo.source || source.id === 'xm') continue
tasks.push(sources[source.id].musicSearch.search(`${musicInfo.name} ${musicInfo.singer || ''} ${musicInfo.albumName || ''}`.trim(), 1, { limit: 5 }).then(res => {
for (const item of res.list) {
if (item.singer === musicInfo.singer && (item.name === musicInfo.name || item.interval === musicInfo.interval)) {
return item
}
}
return null
}).catch(_ => null))
}
const result = (await Promise.all(tasks)).filter(s => s)
const newResult = []
if (result.length) {
for (let i = result.length - 1; i > -1; i--) {
const item = result[i]
if (item.singer === musicInfo.singer && item.name === musicInfo.name && item.interval === musicInfo.interval) {
newResult.push(item)
result.splice(i, 1)
}
}
for (let i = result.length - 1; i > -1; i--) {
const item = result[i]
if (item.singer === musicInfo.singer && item.interval === musicInfo.interval) {
newResult.push(item)
result.splice(i, 1)
}
}
for (let i = result.length - 1; i > -1; i--) {
const item = result[i]
if (item.singer === musicInfo.singer && item.name === musicInfo.name) {
newResult.push(item)
result.splice(i, 1)
}
}
}
// console.log(newResult)
return newResult
},
}