From 1b5474a81e10e30f20011f699f516621b0aafb25 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Mon, 3 Jan 2022 00:35:06 -0800 Subject: [PATCH] playlist folders can now be opened added sidebar-playlist component --- src/renderer/index.js | 35 +++++++++++++ src/renderer/style.less | 11 ++++ .../views/components/sidebar-playlist.ejs | 52 +++++++++++++++++++ src/renderer/views/main.ejs | 11 ++-- 4 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 src/renderer/views/components/sidebar-playlist.ejs diff --git a/src/renderer/index.js b/src/renderer/index.js index 9fea9bfa..54962352 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -619,7 +619,24 @@ const app = new Vue({ async refreshPlaylists() { let self = this this.apiCall('https://api.music.apple.com/v1/me/library/playlist-folders/p.playlistsroot/children/', res => { + console.log(res) self.playlists.listing = res.data + self.playlists.listing.forEach(playlist => { + if(playlist.type === "library-playlist-folders") { + self.mk.api.library.playlistFolderChildren(playlist.id).then(children => { + playlist.children = children + }) + } + }) + self.playlists.listing.sort((a, b) => { + if (a.type === "library-playlist-folders" && b.type !== "library-playlist-folders") { + return -1 + } else if (a.type !== "library-playlist-folders" && b.type === "library-playlist-folders") { + return 1 + } else { + return 0 + } + }) }) }, playlistHeaderContextMenu(event) { @@ -1706,6 +1723,24 @@ const app = new Vue({ this.getMadeForYou(attempt + 1) } }, + createPlaylistFolder(name = "New Folder") { + this.mk.api.v3.music( + "/v1/me/library/playlist-folders/", + {}, + { + fetchOptions: { + method: "POST", + body: JSON.stringify({ + attributes: {name: name} + }) + } + } + ).then(()=>{ + setTimeout(() => { + app.refreshPlaylists() + }, 3000) + }) + }, unauthorize() { this.mk.unauthorize() }, diff --git a/src/renderer/style.less b/src/renderer/style.less index a37c8d94..e1cfbdfe 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -1646,6 +1646,17 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { /* Cider */ +.sidebar-playlist { + .folder-button-active { + background: rgb(255 255 255 / 12%); + } + .folder-body { + background: #ffffff0a; + border-radius: 10px; + padding: 1px 6px; + } +} + .modal-fullscreen { display: flex; justify-content: center; diff --git a/src/renderer/views/components/sidebar-playlist.ejs b/src/renderer/views/components/sidebar-playlist.ejs new file mode 100644 index 00000000..541ecaf9 --- /dev/null +++ b/src/renderer/views/components/sidebar-playlist.ejs @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/renderer/views/main.ejs b/src/renderer/views/main.ejs index ee682ee4..89ce1158 100644 --- a/src/renderer/views/main.ejs +++ b/src/renderer/views/main.ejs @@ -183,14 +183,7 @@
Playlists
- +
@@ -557,6 +550,8 @@ + +<%- include('components/sidebar-playlist') %> <%- include('components/spatial-properties') %>