From 90c37ebc98bc57dd61a7e7e369f89b8070878c0a Mon Sep 17 00:00:00 2001 From: vapormusic Date: Fri, 20 May 2022 22:11:53 +0700 Subject: [PATCH] multiroom --- src/main/base/browserwindow.ts | 5 ++ src/renderer/less/pages.less | 25 ++++++++++ src/renderer/main/vueapp.js | 26 ++++++++++- src/renderer/views/pages/apple-curator.ejs | 2 +- src/renderer/views/pages/cider-multiroom.ejs | 48 ++++++++++++++++++++ src/renderer/views/pages/recordLabel.ejs | 2 +- 6 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 src/renderer/views/pages/cider-multiroom.ejs diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 8407702d..30607ae0 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -64,6 +64,7 @@ export class BrowserWindow { "pages/cider-playlist", "pages/playlist-inline", "pages/recordLabel", + "pages/cider-multiroom", "pages/collection-list", "pages/apple-curator", "pages/artist", @@ -173,6 +174,10 @@ export class BrowserWindow { page: "recordLabel_", component: ``, condition: `page.includes('recordLabel_')` + }, { + page: "multiroom", + component: ``, + condition: `page.includes('multiroom')` }, { page: "curator_", component: ``, diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less index b0ee7c36..1ccaa34d 100644 --- a/src/renderer/less/pages.less +++ b/src/renderer/less/pages.less @@ -1637,4 +1637,29 @@ background: transparent; border : 0px; } +} + +.content-inner.cider-multiroom{ + padding: 0px; + .detail{ + padding: 32px; + } + .header-desc{ + font-size: 1em; + font-weight: 400; + } + .artworkContainer{ + height: 300px; + width : 100%; + img{ + height: 100%; + width: 100%; + overflow: hidden; + object-fit: cover; + filter: unset; + &:last-child{ + transform: unset; + } + } + } } \ No newline at end of file diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index db9954e9..52ccdcdb 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -53,6 +53,7 @@ const app = new Vue({ }, showingPlaylist: [], appleCurator: [], + multiroom: [], artistPage: { data: {}, }, @@ -1699,7 +1700,21 @@ const app = new Vue({ if (item.relationships?.contents?.data != null && item.relationships?.contents?.data.length > 0) { this.routeView(item.relationships.contents.data[0]) } else if (item.attributes?.link?.url != null) { - window.open(item.attributes.link.url) + if (item.attributes.link.url.includes("viewMultiRoom")) { + + id = item.attributes.link.url.substring(item.attributes.link.url.lastIndexOf("=") + 1) + app.getTypeFromID("multiroom", id, false, { + platform: "web", + extend: "editorialArtwork,uber,lockupStyle" + }).then(()=> { + kind = "multiroom" + window.location.hash = `${kind}/${id}` + document.querySelector("#app-content").scrollTop = 0 + }) + + return; + } else { + window.open(item.attributes.link.url)} } } else if (kind.toString().includes("artist")) { @@ -1944,6 +1959,8 @@ const app = new Vue({ } finally { if (kind == "appleCurator") { app.appleCurator = a.data.data[0] + } else if (kind == "multiroom"){ + app.multiroom = a.data.data[0] } else { this.getPlaylistContinuous(a, true) } @@ -1951,6 +1968,8 @@ const app = new Vue({ } finally { if (kind == "appleCurator") { app.appleCurator = a.data.data[0] + } else if (kind == "multiroom"){ + app.multiroom = a.data.data[0] } else { this.getPlaylistContinuous(a, true) } @@ -2184,7 +2203,10 @@ const app = new Vue({ } let truemethod = (!method.endsWith("s")) ? (method + "s") : method; try { - if (library) { + if (method.includes(`multiroom`)) { + return await this.mk.api.v3.music(`v1/editorial/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2) + } + else if (library) { return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2) } else { return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2) diff --git a/src/renderer/views/pages/apple-curator.ejs b/src/renderer/views/pages/apple-curator.ejs index 329aaa3d..2e13a7de 100644 --- a/src/renderer/views/pages/apple-curator.ejs +++ b/src/renderer/views/pages/apple-curator.ejs @@ -37,6 +37,6 @@ return { app: this.$root } - }, + } }) \ No newline at end of file diff --git a/src/renderer/views/pages/cider-multiroom.ejs b/src/renderer/views/pages/cider-multiroom.ejs new file mode 100644 index 00000000..4c8b306b --- /dev/null +++ b/src/renderer/views/pages/cider-multiroom.ejs @@ -0,0 +1,48 @@ + + + \ No newline at end of file diff --git a/src/renderer/views/pages/recordLabel.ejs b/src/renderer/views/pages/recordLabel.ejs index 918d3f48..014440ea 100644 --- a/src/renderer/views/pages/recordLabel.ejs +++ b/src/renderer/views/pages/recordLabel.ejs @@ -78,7 +78,7 @@ }, methods: { getArtistPalette(artist) { - if (artist["attributes"]["artwork"]) { + if (artist?.attributes?.artwork != null) { return { "background": "#" + artist["attributes"]["artwork"]["bgColor"], "color": "#" + artist["attributes"]["artwork"]["textColor1"],