新增“不喜欢歌曲”功能&新增“收藏歌曲”、“取消收藏”、“不喜欢该歌曲”快捷键设置
This commit is contained in:
@@ -9,6 +9,7 @@ import { play, playList } from '@renderer/core/player'
|
||||
import { onBeforeUnmount } from '@common/utils/vueTools'
|
||||
import { appSetting } from '@renderer/store/setting'
|
||||
import { playMusicInfo } from '@renderer/store/player/state'
|
||||
import { initDislikeInfo } from '@renderer/core/dislikeList'
|
||||
|
||||
const initPrevPlayInfo = async() => {
|
||||
const info = await getPlayInfo()
|
||||
@@ -48,6 +49,7 @@ export default () => {
|
||||
window.app_event.myListUpdate(ids)
|
||||
})
|
||||
window.lxData.userLists = await getUserLists() // 获取用户列表
|
||||
await initDislikeInfo() // 获取不喜欢列表
|
||||
await initPrevPlayInfo().catch(err => {
|
||||
log.error(err)
|
||||
}) // 初始化上次的歌曲播放信息
|
||||
|
||||
@@ -32,6 +32,9 @@ import { HOTKEY_PLAYER } from '@common/hotKey'
|
||||
import { playNext, pause, playPrev, togglePlay } from '@renderer/core/player'
|
||||
import usePlaybackRate from './usePlaybackRate'
|
||||
import useSoundEffect from './useSoundEffect'
|
||||
import { addListMusics, removeListMusics } from '@renderer/store/list/action'
|
||||
import { loveList } from '@renderer/store/list/state'
|
||||
import { addDislikeInfo } from '@renderer/core/dislikeList'
|
||||
|
||||
|
||||
export default () => {
|
||||
@@ -90,6 +93,23 @@ export default () => {
|
||||
setStop()
|
||||
}
|
||||
|
||||
const collectMusic = () => {
|
||||
if (!playMusicInfo.musicInfo) return
|
||||
void addListMusics(loveList.id, ['progress' in playMusicInfo.musicInfo ? playMusicInfo.musicInfo.metadata.musicInfo : playMusicInfo.musicInfo])
|
||||
}
|
||||
const unCollectMusic = () => {
|
||||
if (!playMusicInfo.musicInfo) return
|
||||
void removeListMusics({ listId: loveList.id, ids: ['progress' in playMusicInfo.musicInfo ? playMusicInfo.musicInfo.metadata.musicInfo.id : playMusicInfo.musicInfo.id] })
|
||||
}
|
||||
const dislikeMusic = async() => {
|
||||
if (!playMusicInfo.musicInfo) return
|
||||
const minfo = 'progress' in playMusicInfo.musicInfo ? playMusicInfo.musicInfo.metadata.musicInfo : playMusicInfo.musicInfo
|
||||
await addDislikeInfo([{ name: minfo.name, singer: minfo.singer }])
|
||||
if (!playMusicInfo.isTempPlay) {
|
||||
playNext(true)
|
||||
}
|
||||
}
|
||||
|
||||
watch(() => appSetting['player.togglePlayMethod'], newValue => {
|
||||
// setLoopPlay(newValue == 'singleLoop')
|
||||
if (playedList.length) clearPlayedList()
|
||||
@@ -102,6 +122,9 @@ export default () => {
|
||||
window.key_event.on(HOTKEY_PLAYER.next.action, handlePlayNext)
|
||||
window.key_event.on(HOTKEY_PLAYER.prev.action, handlePlayPrev)
|
||||
window.key_event.on(HOTKEY_PLAYER.toggle_play.action, togglePlay)
|
||||
window.key_event.on(HOTKEY_PLAYER.music_love.action, collectMusic)
|
||||
window.key_event.on(HOTKEY_PLAYER.music_unlove.action, unCollectMusic)
|
||||
window.key_event.on(HOTKEY_PLAYER.music_dislike.action, dislikeMusic)
|
||||
|
||||
window.app_event.on('play', setPlayStatus)
|
||||
window.app_event.on('pause', setPauseStatus)
|
||||
@@ -119,6 +142,10 @@ export default () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
||||
window.key_event.off(HOTKEY_PLAYER.prev.action, handlePlayPrev)
|
||||
window.key_event.off(HOTKEY_PLAYER.toggle_play.action, togglePlay)
|
||||
window.key_event.off(HOTKEY_PLAYER.music_love.action, collectMusic)
|
||||
window.key_event.off(HOTKEY_PLAYER.music_unlove.action, unCollectMusic)
|
||||
window.key_event.off(HOTKEY_PLAYER.music_dislike.action, dislikeMusic)
|
||||
|
||||
|
||||
window.app_event.off('play', setPlayStatus)
|
||||
window.app_event.off('pause', setPauseStatus)
|
||||
|
||||
Reference in New Issue
Block a user