新增列表更新管理

This commit is contained in:
lyswhut
2022-04-02 14:13:58 +08:00
parent 36ac3532e6
commit 47d3c50863
13 changed files with 384 additions and 42 deletions
+3
View File
@@ -11,6 +11,7 @@ import useHandleEnvParams from './useHandleEnvParams'
import useEventListener from './useEventListener'
import useDeepLink from './useDeepLink'
import usePlayer from './usePlayer'
import useListAutoUpdate from './useListAutoUpdate'
export default () => {
@@ -46,6 +47,7 @@ export default () => {
setting,
})
const initDeepLink = useDeepLink()
const handleListAutoUpdate = useListAutoUpdate()
getEnvParams().then(envParams => {
@@ -63,6 +65,7 @@ export default () => {
initPlayer()
handleEnvParams(envParams) // 处理传入的启动参数
initDeepLink(envParams)
handleListAutoUpdate()
})
})
}
+2 -1
View File
@@ -1,7 +1,7 @@
import { useCommit, useRefGetter } from '@renderer/utils/vueTools'
import { getPlayList } from '@renderer/utils'
import { getPlayInfo, getSearchHistoryList } from '@renderer/utils/tools'
import { initListPosition, initListPrevSelectId } from '@renderer/utils/data'
import { initListPosition, initListPrevSelectId, initListUpdateInfo } from '@renderer/utils/data'
import music from '@renderer/utils/music'
import { log } from '@common/utils'
import {
@@ -152,6 +152,7 @@ export default ({
await Promise.all([
initListPosition(), // 列表位置记录
initListPrevSelectId(), // 上次选中的列表记录
initListUpdateInfo(), // 列表更新设置
initUserApi(), // 自定义API
]).catch(err => log.error(err))
music.init() // 初始化音乐sdk
@@ -0,0 +1,26 @@
import { getListUpdateInfo } from '@renderer/utils/data'
import useSyncSourceList from '@renderer/utils/compositions/useSyncSourceList'
import { userLists } from '@renderer/core/share/list'
export default () => {
const syncSourceList = useSyncSourceList()
const handleSyncSourceList = async(waitUpdateLists) => {
if (!waitUpdateLists.length) return
const targetListInfo = waitUpdateLists.shift()
// console.log(targetListInfo)
await syncSourceList(targetListInfo)
handleSyncSourceList(waitUpdateLists)
}
return () => {
const waitUpdateLists = Object.entries(getListUpdateInfo())
.filter(([id, info]) => info.isAutoUpdate)
.map(([id]) => userLists.find(l => l.id === id))
.filter(_ => _)
for (let i = 2; i > 0; i--) {
handleSyncSourceList(waitUpdateLists)
}
}
}