新增同步功能对“不喜欢歌曲”列表的同步

This commit is contained in:
lyswhut
2023-09-05 23:11:09 +08:00
parent fc03cd77fc
commit b1f9e525ab
62 changed files with 1275 additions and 314 deletions
+39 -36
View File
@@ -1,48 +1,51 @@
// import { toRaw } from '@common/utils/vueTools'
import { DISLIKE_EVENT_NAME } from '@common/ipcNames'
import { rendererInvoke, rendererOff, rendererOn } from '@common/rendererIpc'
import { action } from '@renderer/store/dislikeList'
import {
getDislikeListInfo,
addDislikeInfo as addDislikeInfoRemote,
overwirteDislikeInfo as overwirteDislikeInfoRemote,
// updateDislikeInfo as updateDislikeInfoRemote,
// removeDislikeInfo as removeDislikeInfoRemote,
// clearDislikeInfo as clearDislikeInfoRemote,
} from '@renderer/utils/ipc'
export const initDislikeInfo = async() => {
action.initDislikeInfo(await getDislikeListInfo())
action.initDislikeInfo(await rendererInvoke<LX.Dislike.DislikeInfo>(DISLIKE_EVENT_NAME.get_dislike_music_infos))
}
export const addDislikeInfo = async(infos: LX.Dislike.DislikeMusicInfo[]) => {
await addDislikeInfoRemote(infos)
return action.addDislikeInfo(infos)
}
export const overwirteDislikeInfo = async(rules: string) => {
await overwirteDislikeInfoRemote(rules)
return action.overwirteDislikeInfo(rules)
}
// export const updateDislikeInfo = async(info: LX.Dislike.ListItem) => {
// await updateDislikeInfoRemote([toRaw(info)])
// action.updateDislikeInfo(info)
// }
// export const removeDislikeInfo = async(ids: string[]) => {
// await removeDislikeInfoRemote(toRaw(ids))
// action.removeDislikeInfo(ids)
// }
// export const clearDislikeInfo = async() => {
// await clearDislikeInfoRemote()
// action.clearDislikeInfo()
// }
export const hasDislike = (info: LX.Music.MusicInfo | LX.Download.ListItem | null) => {
if (!info) return false
return action.hasDislike(info)
}
export const addDislikeInfo = async(infos: LX.Dislike.DislikeMusicInfo[]) => {
await rendererInvoke<LX.Dislike.DislikeMusicInfo[]>(DISLIKE_EVENT_NAME.add_dislike_music_infos, infos)
}
export const overwirteDislikeInfo = async(rules: string) => {
await rendererInvoke<string>(DISLIKE_EVENT_NAME.overwrite_dislike_music_infos, rules)
}
export const clearDislikeInfo = async() => {
await rendererInvoke(DISLIKE_EVENT_NAME.clear_dislike_music_infos)
}
const noop = () => {}
export const registerRemoteDislikeAction = (onListChanged: (listIds: string[]) => void = noop) => {
const add_dislike_music_infos = ({ params: datas }: LX.IpcRendererEventParams<LX.Dislike.DislikeMusicInfo[]>) => {
action.addDislikeInfo(datas)
}
const overwrite_dislike_music_infos = ({ params: datas }: LX.IpcRendererEventParams<LX.Dislike.DislikeRules>) => {
action.overwirteDislikeInfo(datas)
}
const clear_dislike_music_infos = () => {
return action.clearDislikeInfo()
}
rendererOn(DISLIKE_EVENT_NAME.add_dislike_music_infos, add_dislike_music_infos)
rendererOn(DISLIKE_EVENT_NAME.overwrite_dislike_music_infos, overwrite_dislike_music_infos)
rendererOn(DISLIKE_EVENT_NAME.clear_dislike_music_infos, clear_dislike_music_infos)
return () => {
rendererOff(DISLIKE_EVENT_NAME.add_dislike_music_infos, add_dislike_music_infos)
rendererOff(DISLIKE_EVENT_NAME.overwrite_dislike_music_infos, overwrite_dislike_music_infos)
rendererOff(DISLIKE_EVENT_NAME.clear_dislike_music_infos, clear_dislike_music_infos)
}
}