过滤id重复的歌曲

This commit is contained in:
lyswhut
2022-03-19 16:25:28 +08:00
parent 798b840472
commit 4d7d92759f
4 changed files with 24 additions and 4 deletions
+5 -1
View File
@@ -1,5 +1,7 @@
import music from '../../utils/music'
import { markRawList } from '@renderer/utils/vueTools'
import { deduplicationList } from '@renderer/utils'
const sourceList = {}
const sources = []
const cache = new Map()
@@ -57,6 +59,7 @@ const actions = {
// : music[source].leaderboard.getList(bangId, page)
// ).then(result => commit('setList', { result, key }))
return music[source].leaderboard.getList(bangId, page).then(result => {
result.list = deduplicationList(result.list)
cache.set(key, result)
listInfo.list = markRawList(result.list)
listInfo.total = result.total
@@ -75,6 +78,7 @@ const actions = {
return cache.has(key)
? Promise.resolve(cache.get(key))
: music[source].leaderboard.getList(bangId, page).then(result => {
result.list = markRawList(deduplicationList(result.list))
cache.set(key, result)
return result
})
@@ -89,7 +93,7 @@ const actions = {
: loadData(id, loadPage).then(result1 => load(++loadPage).then(result2 => [...result1.list, ...result2]))
}
return load().then(result2 => [...result.list, ...result2])
})
}).then(list => deduplicationList(list))
},
}
+4 -1
View File
@@ -1,5 +1,6 @@
import music from '../../utils/music'
import { markRawList } from '@renderer/utils/vueTools'
import { deduplicationList } from '@renderer/utils'
const sources = []
const sourceList = {}
@@ -85,7 +86,7 @@ sources.push({
})
// state
const state = {
const state = window.state = {
sourceList,
list: [],
text: '',
@@ -151,6 +152,7 @@ const mutations = {
},
setList(state, datas) {
let source = state.sourceList[datas.source]
datas.list = deduplicationList(datas.list)
source.list = markRawList(datas.list)
source.total = datas.total
source.allPage = datas.allPage
@@ -170,6 +172,7 @@ const mutations = {
total += source.total
// limit = Math.max(source.limit, limit)
}
list = deduplicationList(list)
state.allPage = Math.max(...pages)
state.total = total
state.limit = limit
+5 -2
View File
@@ -1,5 +1,6 @@
import music from '../../utils/music'
import { markRawList } from '@renderer/utils/vueTools'
import { deduplicationList } from '@renderer/utils'
const sortList = {}
const sources = []
@@ -91,6 +92,7 @@ const actions = {
? Promise.resolve(cache.get(key))
: music[source]?.songList.getListDetail(id, page).then(result => ({ ...result, list: filterList(result.list) }))
).then(result => {
result.list = markRawList(deduplicationList(result.list))
commit('setListDetail', { result, key, source, id, page })
return result.list
})
@@ -103,6 +105,7 @@ const actions = {
return cache.has(key)
? Promise.resolve(cache.get(key))
: music[source]?.songList.getListDetail(id, page).then(result => {
result.list = markRawList(deduplicationList(result.list))
cache.set(key, result)
return result
}) ?? Promise.reject(new Error('source not found'))
@@ -117,7 +120,7 @@ const actions = {
: loadData(id, loadPage).then(result1 => loadDetail(++loadPage).then(result2 => [...result1.list, ...result2]))
}
return loadDetail().then(result2 => [...result.list, ...result2]).then(list => filterList(list))
})
}).then(list => deduplicationList(list))
},
}
@@ -139,7 +142,7 @@ const mutations = {
cache.set(key, result)
},
setListDetail(state, { result, key, source, id, page }) {
state.listDetail.list = markRawList(result.list)
state.listDetail.list = result.list
state.listDetail.id = id
state.listDetail.source = source
state.listDetail.total = result.total