过滤id重复的歌曲
parent
798b840472
commit
4d7d92759f
|
@ -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))
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -571,3 +571,13 @@ export const getFontSizeWithScreen = (screenWidth = window.innerWidth) => {
|
|||
? 20
|
||||
: screenWidth <= 2560 ? 20 : 22
|
||||
}
|
||||
|
||||
|
||||
export const deduplicationList = list => {
|
||||
const ids = new Set()
|
||||
return list.filter(s => {
|
||||
if (ids.has(s.songmid)) return false
|
||||
ids.add(s.songmid)
|
||||
return true
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue