From 7670d0cac149ad638c7c45e2866532f6faebbe86 Mon Sep 17 00:00:00 2001 From: Jason Chen Date: Fri, 17 Jun 2022 13:41:10 -0700 Subject: [PATCH] paste songs into playlist --- src/renderer/views/pages/cider-playlist.ejs | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs index 7a2cfe13..7457a9d2 100644 --- a/src/renderer/views/pages/cider-playlist.ejs +++ b/src/renderer/views/pages/cider-playlist.ejs @@ -297,6 +297,13 @@ beforeMount() { if( window.location.hash.includes("playlist") ) { window.addEventListener('keydown', this.getCopiedPlayListSongs); + window.addEventListener('keydown', this.pasteSongs); + } + }, + beforeDestroy() { + if( window.location.hash.includes("playlist") ) { + window.removeEventListener('keydown', this.getCopiedPlayListSongs); + window.removeEventListener('keydown', this.pasteSongs); } }, watch: { @@ -771,6 +778,35 @@ notyf.success(app.getLz('term.share.success')) } }, + async pasteSongs(event) { + if( event.ctrlKey && event.keyCode === 86 ) { + let clipboard = await navigator.clipboard.readText() + let songs = [] + + clipboard = clipboard.split(",") + clipboard.forEach(item => { + songs.push({ + id: item.substring(item.indexOf("i=")+2, item.length), + type: "songs", + }) + }) + + this.app.mk.api.v3.music(`/v1/me/library/playlists/${this.data.id}/tracks`, {}, { + fetchOptions: { + method: "POST", + body: JSON.stringify({ + data: songs + }) + } + }).then((response) => { + songs.forEach(item => { + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/songs/${item.id}`).then((response1) => { + this.displayListing.push(response1.data.data[0]) + }) + }) + }) + } + }, search() { let filtered = [];