新增播放自动换源功能
This commit is contained in:
@@ -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
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user