From 798a38613d24b8833a3648073930a9def3da96c9 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sat, 26 Feb 2022 06:21:17 +0700 Subject: [PATCH] Revert "Merge branch 'local' into develop" This reverts commit 46ccfa139391b221e1fd9d04d63edab5837c3d57, reversing changes made to 8f9421258c59fffc02c687066fc515dd3df21347. --- src/main/plugins/lastfm.ts | 2 +- src/preload/cider-preload.js | 2 +- src/renderer/index.js | 199 ++++++++---------- src/renderer/todo.js | 8 +- src/renderer/views/components/artist-chip.ejs | 16 +- .../views/components/libraryartist-item.ejs | 4 +- .../views/components/listennow-child.ejs | 10 +- .../views/components/mediaitem-list-item.ejs | 4 +- .../views/components/mediaitem-square.ejs | 25 +-- src/renderer/views/components/queue.ejs | 2 +- .../views/components/sidebar-playlist.ejs | 4 +- src/renderer/views/main.ejs | 2 +- src/renderer/views/pages/apple-curator.ejs | 6 +- src/renderer/views/pages/artist-feed.ejs | 2 +- src/renderer/views/pages/artist.ejs | 15 +- src/renderer/views/pages/cider-playlist.ejs | 8 +- src/renderer/views/pages/collection-list.ejs | 2 +- src/renderer/views/pages/home.ejs | 12 +- src/renderer/views/pages/library-videos.ejs | 2 +- src/renderer/views/pages/listen_now.ejs | 4 +- src/renderer/views/pages/playlist-inline.ejs | 8 +- src/renderer/views/pages/podcasts.ejs | 10 +- src/renderer/views/pages/replay.ejs | 8 +- src/renderer/views/pages/search.ejs | 2 +- src/renderer/views/pages/zoo.ejs | 2 +- .../views/components/mediaitem-square.ejs | 4 +- 26 files changed, 158 insertions(+), 205 deletions(-) diff --git a/src/main/plugins/lastfm.ts b/src/main/plugins/lastfm.ts index 475f5197..2ac0a000 100644 --- a/src/main/plugins/lastfm.ts +++ b/src/main/plugins/lastfm.ts @@ -169,7 +169,7 @@ export default class LastFMPlugin { const res = await this._win.webContents.executeJavaScript(` (async () => { - const subMk = await MusicKit.getInstance().api.music("/v1/catalog/" + MusicKit.getInstance().storefrontId + "/songs/${songId}", { + const subMk = await MusicKit.getInstance().api.v3.music("/v1/catalog/" + MusicKit.getInstance().storefrontId + "/songs/${songId}", { include: { songs: ["artists"] } diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 5bcdefe6..84a55e91 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -58,7 +58,7 @@ const MusicKitInterop = { const id = nowPlayingItem?._songId ?? (nowPlayingItem?.songId ?? nowPlayingItem?.id) if (id != null && id != -1) { try{ - const query = await mk.api.music(`/v1${(((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != null) && ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != -1)) ? `/catalog/${mk.storefrontId}/` : `/me/library/`}songs/${id}?l=${app.mklang}`); + const query = await mk.api.v3.music(`/v1${(((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != null) && ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != -1)) ? `/catalog/${mk.storefrontId}/` : `/me/library/`}songs/${id}?l=${app.mklang}`); if (query?.data?.data[0]){ let attrs = query?.data?.data[0]?.attributes; if (attrs?.name) { nowPlayingItem.attributes.name = attrs?.name ?? ''} diff --git a/src/renderer/index.js b/src/renderer/index.js index 945b5b4b..2f3a4ff5 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -203,7 +203,7 @@ const app = new Vue({ }, v3: { requestBody: { - platform: "auto" + platform: "web" } }, tmpHeight: '', @@ -412,7 +412,7 @@ const app = new Vue({ if (item.includes("ra.")) { type = "stations" } - let found = await app.mk.api.music(`/v1/catalog/us/${type}/${item}`) + let found = await app.mk.api.v3.music(`/v1/catalog/us/${type}/${item}`) this.socialBadges.mediaItems.push(found.data.data[0]) } catch (e) { @@ -462,7 +462,7 @@ const app = new Vue({ }) { let self = this try { - app.mk.api.music("/v1/social/badging-map").then(data => { + app.mk.api.v3.music("/v1/social/badging-map").then(data => { self.socialBadges.badgeMap = data.data.results.badgingMap cb(data.data.results.badgingMap) }) @@ -525,7 +525,7 @@ const app = new Vue({ }) } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { self.selectedMediaItems[i].kind = "albums" - let res = await self.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); + let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); let ids = res.data.data.map(function (i) { return {id: i.id, type: i.type} }) @@ -538,7 +538,7 @@ const app = new Vue({ }) } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) { self.selectedMediaItems[i].kind = "library-albums" - let res = await self.mk.api.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); + let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); let ids = res.data.data.map(function (i) { return {id: i.id, type: i.type} }) @@ -565,7 +565,7 @@ const app = new Vue({ }) } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { self.selectedMediaItems[i].kind = "albums" - let res = await self.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); + let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); let ids = res.data.data.map(function (i) { return {id: i.id, type: i.type} }) @@ -578,7 +578,7 @@ const app = new Vue({ }) } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) { self.selectedMediaItems[i].kind = "library-albums" - let res = await self.mk.api.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); + let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); let ids = res.data.data.map(function (i) { return {id: i.id, type: i.type} }) @@ -592,7 +592,7 @@ const app = new Vue({ } this.modals.addToPlaylist = false - await app.mk.api.music( + await app.mk.api.v3.music( `/v1/me/library/playlists/${playlist_id}/tracks`, {}, { fetchOptions: { method: "POST", @@ -616,9 +616,8 @@ const app = new Vue({ this.setLzManual() clearTimeout(this.hangtimer) this.mk = MusicKit.getInstance() - let needsReload = (typeof localStorage["music.8r23j2835d.media-user-token"] == "undefined") - this.mk.authorize().then((token) => { - console.log(mytoken,'token') + let needsReload = (typeof localStorage["music.ampwebplay.media-user-token"] == "undefined") + this.mk.authorize().then(() => { self.mkIsReady = true if (needsReload) { document.location.reload() @@ -643,7 +642,7 @@ const app = new Vue({ try { // Set profile name - this.chrome.userinfo = (await app.mk.api.music(`/v1/me/social-profile`)).data.data[0] + this.chrome.userinfo = (await app.mk.api.v3.music(`/v1/me/social-profile`)).data.data[0] } catch (err) { } @@ -753,7 +752,7 @@ const app = new Vue({ } break; case "history": - let history = await app.mk.api.music(`/v1/me/recent/played/tracks`, {l: app.mklang}) + let history = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`, {l: app.mklang}) if (history.data.data.length > 0) { let lastItem = history.data.data[0] let kind = lastItem.attributes.playParams.kind; @@ -832,7 +831,7 @@ const app = new Vue({ } catch (e) { } if (previewURL == null && ((app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)) != -1)) { - app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/songs/${app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)}`).then((response) => { + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/songs/${app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)}`).then((response) => { previewURL = response.data.data[0].attributes.previews[0].url if (previewURL) ipcRenderer.send('getPreviewURL', previewURL) @@ -1055,7 +1054,7 @@ const app = new Vue({ }, async editPlaylistFolder(id, name = app.getLz('term.newPlaylist')) { let self = this - this.mk.api.music( + this.mk.api.v3.music( `/v1/me/library/playlist-folders/${id}`, {}, { fetchOptions: { method: "PATCH", @@ -1070,7 +1069,7 @@ const app = new Vue({ }, async editPlaylist(id, name = app.getLz('term.newPlaylist')) { let self = this - this.mk.api.music( + this.mk.api.v3.music( `/v1/me/library/playlists/${id}`, {}, { fetchOptions: { method: "PATCH", @@ -1099,7 +1098,7 @@ const app = new Vue({ if (tracks.length > 0) { request.tracks = tracks } - app.mk.api.music(`/v1/me/library/playlists`, {}, { + app.mk.api.v3.music(`/v1/me/library/playlists`, {}, { fetchOptions: { method: "POST", body: JSON.stringify({ @@ -1131,7 +1130,7 @@ const app = new Vue({ deletePlaylist(id) { let self = this if (confirm(app.getLz('term.deletePlaylist'))) { - app.mk.api.music(`/v1/me/library/playlists/${id}`, {}, { + app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, { fetchOptions: { method: "DELETE" } @@ -1155,20 +1154,20 @@ const app = new Vue({ app.appRoute("collection-list") }, async showArtistView(artist, title, view) { - let response = (await app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}?l=${this.mklang}`, {}, {includeResponseMeta: !0})).data + let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}?l=${this.mklang}`, {}, {includeResponseMeta: !0})).data console.log(response) await this.showCollection(response, title, "artists") }, async showRecordLabelView(label, title, view) { - let response = (await app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/record-labels/${label}/view/${view}?l=${this.mklang}`)).data + let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/record-labels/${label}/view/${view}?l=${this.mklang}`)).data await this.showCollection(response, title, "record-labels") }, async showSearchView(term, group, title) { let requestBody = { - platform: "auto", + platform: "web", groups: group, - types: "activities,albums,apple-curators,artists,curators,editorial-items,music-videos,playlists,songs,stations,record-labels", + types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", limit: 25, relate: { editorialItems: ["contents"] @@ -1193,7 +1192,7 @@ const app = new Vue({ groups: group, l: this.mklang } - let response = await app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${term}`, requestBody, { + let response = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${term}`, requestBody, { includeResponseMeta: !0 }) @@ -1237,7 +1236,7 @@ const app = new Vue({ let self = this const params = { include: "tracks", - platform: "auto", + platform: "web", "include[library-playlists]": "catalog,tracks", "fields[playlists]": "curatorName,playlistType,name,artwork,url,playParams", "include[library-songs]": "catalog,artists,albums,playParams,name,artwork,url", @@ -1248,12 +1247,12 @@ const app = new Vue({ if (!transient) { this.playlists.loadingState = 0; } - app.mk.api.music(`/v1/me/library/playlists/${id}`, params).then(res => { + app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, params).then(res => { self.getPlaylistContinuous(res, transient) }).catch((e) => { console.log(e); try { - app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`, params).then(res => { + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`, params).then(res => { self.getPlaylistContinuous(res, transient) }) } catch (err) { @@ -1324,7 +1323,7 @@ const app = new Vue({ this.search.hints = [] return } - let hints = await (await app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/search/hints?term=${this.search.term}`)).data.results + let hints = await (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search/hints?term=${this.search.term}`)).data.results this.search.hints = hints ? hints.terms : [] }, getSongProgress() { @@ -1404,7 +1403,7 @@ const app = new Vue({ if (kind.toString().includes("apple-curator")) { kind = "appleCurator" app.getTypeFromID("appleCurator", (id), false, { - platform: "auto", + platform: "web", include: "grouping,playlists", extend: "editorialArtwork", "art[url]": "f" @@ -1522,7 +1521,7 @@ const app = new Vue({ } if (artistId == "") { - let artistQuery = (await app.mk.api.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.artistName}`, { + let artistQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.artistName}`, { limit: 1, types: 'artists' })).data.results; @@ -1560,7 +1559,7 @@ const app = new Vue({ if (albumId == "") { try { - let albumQuery = (await app.mk.api.music(`v1/catalog/${app.mk.storefrontId}/search?term=${(item.attributes.albumName ?? item.attributes.name ?? "") + " " + (item.attributes.artistName ?? "")}`, { + let albumQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${(item.attributes.albumName ?? item.attributes.name ?? "") + " " + (item.attributes.artistName ?? "")}`, { limit: 1, types: 'albums' })).data.results; @@ -1584,7 +1583,7 @@ const app = new Vue({ if (labelId == "") { try { - let labelQuery = (await app.mk.api.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.recordLabel}`, { + let labelQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.recordLabel}`, { limit: 1, types: 'record-labels' })).data.results; @@ -1656,7 +1655,7 @@ const app = new Vue({ // var playlistId = id // const params = { // include: "tracks", - // platform: "auto", + // platform: "web", // "include[library-playlists]": "catalog,tracks", // "fields[playlists]": "curatorName,playlistType,name,artwork,url", // "include[library-songs]": "catalog,artists,albums", @@ -1969,9 +1968,9 @@ const app = new Vue({ let truemethod = (!method.endsWith("s")) ? (method + "s") : method; try { if (library) { - return await this.mk.api.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2) + return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2) } else { - return await this.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2) + return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2) } } catch (e) { console.log(e) @@ -2016,23 +2015,23 @@ const app = new Vue({ "include[library-songs]": "catalog,artists,albums", "fields[artists]": "name,url,id", "fields[albums]": "name,url,id", - platform: "auto", + platform: "web", "fields[catalog]": "artistUrl,albumUrl", "fields[songs]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", limit: 100, l: self.mklang } const safeparams = { - platform: "auto", + "platform": "web", "limit": 80 } self.library.songs.downloadState = 1 if (downloaded == null) { - app.mk.api.music(`/v1/me/library/songs/`, params).then((response) => { + app.mk.api.v3.music(`/v1/me/library/songs/`, params).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading'); - app.mk.api.music(`/v1/me/library/songs/`, safeparams).then((response) => { + app.mk.api.v3.music(`/v1/me/library/songs/`, safeparams).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading failed', error) @@ -2042,11 +2041,11 @@ const app = new Vue({ }) } else { if (downloaded.next != null) { - app.mk.api.music(downloaded.next, params).then((response) => { + app.mk.api.v3.music(downloaded.next, params).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading'); - app.mk.api.music(downloaded.next, safeparams).then((response) => { + app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading failed', error) @@ -2120,14 +2119,14 @@ const app = new Vue({ "include[library-albums]": "catalog,artists,albums", "fields[artists]": "name,url,id", "fields[albums]": "name,url,id", - platform: "auto", + platform: "web", "fields[catalog]": "artistUrl,albumUrl", "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", limit: 100, l: self.mklang } const safeparams = { - platform: "auto", + platform: "web", limit: "60", "include[library-albums]": "artists", "include[library-artists]": "catalog", @@ -2137,11 +2136,11 @@ const app = new Vue({ "includeOnly": "catalog,artists" } if (downloaded == null) { - app.mk.api.music(`/v1/me/library/albums/`, params).then((response) => { + app.mk.api.v3.music(`/v1/me/library/albums/`, params).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading'); - app.mk.api.music(`/v1/me/library/albums/`, safeparams).then((response) => { + app.mk.api.v3.music(`/v1/me/library/albums/`, safeparams).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading failed', error) @@ -2151,11 +2150,11 @@ const app = new Vue({ }) } else { if (downloaded.next != null) { - app.mk.api.music(downloaded.next, params).then((response) => { + app.mk.api.v3.music(downloaded.next, params).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading'); - app.mk.api.music(downloaded.next, safeparams).then((response) => { + app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading failed', error); @@ -2230,7 +2229,7 @@ const app = new Vue({ // "include[library-artists]": "catalog,artists,albums", // "fields[artists]": "name,url,id", // "fields[albums]": "name,url,id", - platform: "auto", + platform: "web", // "fields[catalog]": "artistUrl,albumUrl", // "fields[artists]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", limit: 100, @@ -2238,15 +2237,15 @@ const app = new Vue({ } const safeparams = { include: "catalog", - platform: "auto", + platform: "web", limit: 50, } if (downloaded == null) { - app.mk.api.music(`/v1/me/library/artists/`, params).then((response) => { + app.mk.api.v3.music(`/v1/me/library/artists/`, params).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading'); - app.mk.api.music(`/v1/me/library/artists/`, safeparams).then((response) => { + app.mk.api.v3.music(`/v1/me/library/artists/`, safeparams).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading failed', error) @@ -2257,11 +2256,11 @@ const app = new Vue({ } else { if (downloaded.next != null) { - app.mk.api.music(downloaded.next, params).then((response) => { + app.mk.api.v3.music(downloaded.next, params).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading'); - app.mk.api.music(downloaded.next, safeparams).then((response) => { + app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { processChunk(response.data) }).catch((error) => { console.log('safe loading failed', error) @@ -2346,9 +2345,9 @@ const app = new Vue({ return } try { - this.listennow = (await this.mk.api.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`, { + this.listennow = (await this.mk.api.v3.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`, { name: "listen-now", - with: "friendsMix,library", + with: "friendsMix,library,social", "art[social-profiles:url]": "c", "art[url]": "c,f", "omit[resource]": "autos", @@ -2366,8 +2365,8 @@ const app = new Vue({ "fields[artists]": ["name", "url"], "extend[stations]": ["airDate", "supportsAirTimeUpdates"], "meta[stations]": "inflectionPoints", - types: "artists,albums,editorial-items,library-albums,library-playlists,music-videos,playlists,stations,activities,apple-curators,curators", - platform: "auto", + types: "artists,albums,editorial-items,library-albums,library-playlists,music-movies,music-videos,playlists,stations,uploaded-audios,uploaded-videos,activities,apple-curators,curators,tv-shows,social-upsells", + platform: "web", l: this.mklang }, { includeResponseMeta: !0, @@ -2388,9 +2387,9 @@ const app = new Vue({ return } try { - let browse = await app.mk.api.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, { - platform: "auto", - // name: "music", + let browse = await app.mk.api.v3.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, { + platform: "web", + name: "music", "omit[resource:artists]": "relationships", "include[albums]": "artists", "include[songs]": "artists", @@ -2413,8 +2412,8 @@ const app = new Vue({ return } try { - this.radio.personal = (await app.mk.api.music(`/v1/me/recent/radio-stations`, { - platform: "auto", + this.radio.personal = (await app.mk.api.v3.music(`/v1/me/recent/radio-stations`, { + "platform": "web", "art[url]": "f", l: this.mklang })).data.data; @@ -2428,7 +2427,7 @@ const app = new Vue({ return } try { - mfu = await app.mk.api.music("/v1/me/library/playlists?platform=auto&extend=editorialVideo&fields%5Bplaylists%5D=lastModifiedDate&filter%5Bfeatured%5D=made-for-you&include%5Blibrary-playlists%5D=catalog&fields%5Blibrary-playlists%5D=artwork%2Cname%2CplayParams%2CdateAdded") + mfu = await app.mk.api.v3.music("/v1/me/library/playlists?platform=web&extend=editorialVideo&fields%5Bplaylists%5D=lastModifiedDate&filter%5Bfeatured%5D=made-for-you&include%5Blibrary-playlists%5D=catalog&fields%5Blibrary-playlists%5D=artwork%2Cname%2CplayParams%2CdateAdded") this.madeforyou = mfu.data } catch (e) { console.log(e) @@ -2437,7 +2436,7 @@ const app = new Vue({ }, newPlaylistFolder(name = app.getLz('term.newPlaylistFolder')) { let self = this - this.mk.api.music( + this.mk.api.v3.music( "/v1/me/library/playlist-folders/", {}, { fetchOptions: { method: "POST", @@ -2482,7 +2481,7 @@ const app = new Vue({ const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? (this.mk.nowPlayingItem["songId"] ?? -1) : -1; // this.getMXM( trackName, artistName, 'en', duration); if (songID != -1) { - this.mk.api.music(`v1/catalog/${this.mk.storefrontId}/songs/${songID}/lyrics`) + this.mk.api.v3.music(`v1/catalog/${this.mk.storefrontId}/songs/${songID}/lyrics`) .then((response) => { this.lyricsMediaItem = response.data?.data[0]?.attributes["ttml"] this.parseTTML() @@ -2499,7 +2498,7 @@ const app = new Vue({ removeFromLibrary(kind, id) { let self = this let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.api.music(`v1/me/library/${truekind}/${id.toString()}`, {}, { + app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, { fetchOptions: { method: "DELETE" } @@ -3160,9 +3159,9 @@ const app = new Vue({ if (term == "") { return } - //this.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}` - this.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${encodeURIComponent(this.search.term)}`, { - types: "activities,albums,apple-curators,artists,curators,editorial-items,music-videos,playlists,songs,stations,record-labels", + //this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}` + this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${encodeURIComponent(this.search.term)}`, { + types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", "relate[editorial-items]": "contents", "include[editorial-items]": "contents", "include[albums]": "artists", @@ -3170,13 +3169,12 @@ const app = new Vue({ "include[songs]": "artists,albums", "include[music-videos]": "artists", "extend": "artistUrl", - "fields[artists]": "url,name,hero", + "fields[artists]": "url,name,artwork,hero", "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url", - "with": "serverBubbles,lyricHighlights", "art[url]": "c,f", "omit[resource]": "autos", - platform: "auto", + "platform": "web", limit: 25, l: this.mklang }).then(function (results) { @@ -3184,16 +3182,16 @@ const app = new Vue({ self.search.results = results.data.results }) - // await app.mk.api.music(`v1/social/${app.mk.storefrontId}/search?term=${app.search.term}`, { - // types: ["playlists", "social-profiles"], - // limit: 25, - // with: ["serverBubbles", "lyricSnippet"], - // "art[url]": "f", - // "art[social-profiles:url]": "c" - // }, {includeResponseMeta: !0}).then(function (results) { - // results.data.results["meta"] = results.data.meta - // self.search.resultsSocial = results.data.results - // }) + await app.mk.api.v3.music(`v1/social/${app.mk.storefrontId}/search?term=${app.search.term}`, { + types: ["playlists", "social-profiles"], + limit: 25, + with: ["serverBubbles", "lyricSnippet"], + "art[url]": "f", + "art[social-profiles:url]": "c" + }, {includeResponseMeta: !0}).then(function (results) { + results.data.results["meta"] = results.data.meta + self.search.resultsSocial = results.data.results + }) }, async inLibrary(items = []) { let types = [] @@ -3225,7 +3223,7 @@ const app = new Vue({ result[key] = item[key]; return result; }, {}); - return (await this.mk.api.music(`/v1/catalog/${app.mk.storefrontId}`, { + return (await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}`, { ...{ "omit[resource]": "autos", relate: "library", @@ -3339,7 +3337,7 @@ const app = new Vue({ } catch (e) { } } else { - let data = await this.mk.api.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); + let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); data = data.data.data[0]; if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) { this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50); @@ -3363,7 +3361,7 @@ const app = new Vue({ async setLibraryArt() { if (typeof this.mk.nowPlayingItem === "undefined") return; try { - const data = await this.mk.api.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); + const data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); data = data.data.data[0]; if (data != null && data !== "") { @@ -3377,7 +3375,7 @@ const app = new Vue({ async setLibraryArtBG() { if (typeof this.mk.nowPlayingItem === "undefined") return; try { - const data = await this.mk.api.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); + const data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); data = data.data.data[0]; if (data != null && data !== "") { @@ -3415,7 +3413,7 @@ const app = new Vue({ } id = item.id } - let response = await this.mk.api.music(`/v1/me/ratings/${type}?platform=auto&ids=${type.includes('library') ? item.id : id}`) + let response = await this.mk.api.v3.music(`/v1/me/ratings/${type}?platform=web&ids=${type.includes('library') ? item.id : id}`) if (response.data.data.length != 0) { let value = response.data.data[0].attributes.value return value @@ -3432,7 +3430,7 @@ const app = new Vue({ } id = item.id } - this.mk.api.music(`/v1/me/ratings/${type}/${id}`, {}, { + this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { fetchOptions: { method: "PUT", body: JSON.stringify({ @@ -3453,7 +3451,7 @@ const app = new Vue({ } id = item.id } - this.mk.api.music(`/v1/me/ratings/${type}/${id}`, {}, { + this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { fetchOptions: { method: "PUT", body: JSON.stringify({ @@ -3474,7 +3472,7 @@ const app = new Vue({ } id = item.id } - this.mk.api.music(`/v1/me/ratings/${type}/${id}`, {}, { + this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { fetchOptions: { method: "DELETE", } @@ -3549,7 +3547,7 @@ const app = new Vue({ fetchPlaylist(id, callback) { // id can be found in playlist.attributes.playParams.globalId // this.mk.api. - this.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => { + this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => { callback(res.data.data[0]) }) @@ -3898,7 +3896,7 @@ const app = new Vue({ let u = this.cfg.general.language; // use MusicKit.getInstance or crash try { - let item = await MusicKit.getInstance().api.music(`v1/storefronts/${app.mk.storefrontId}`) + let item = await MusicKit.getInstance().api.v3.music(`v1/storefronts/${app.mk.storefrontId}`) let langcodes = item.data.data[0].attributes.supportedLanguageTags; if (langcodes) langcodes = langcodes.map(function (u) { return u.replace(/-Han[s|t]/i, "").toLowerCase() @@ -3953,21 +3951,6 @@ const app = new Vue({ checkForUpdate() { ipcRenderer.send('check-for-update') }, - async loadArtistImage(id){ - try { - let u = await fetch(`https://music.apple.com/${app.mk.storefrontId}/artist/${id}`); - let html = await u.text(); - function getStringBetween(str, start, end) { - const result = str.match(new RegExp(start + "(.*)" + end)); - - return result[1]; - } - let string = getStringBetween(html, '
- +
{{ item.attributes.name }} @@ -16,30 +16,24 @@ props: { item: { type: Object, - required: true, + required: true } }, data: function() { return { artist: { id: null - }, - artistimage : '' + } } }, template: '#artist-chip', async mounted() { - let artistId = this.item.id - + let artistId = this.item.id if(typeof this.item.relationships.catalog == "object") { artistId = this.item.relationships.catalog.data[0].id } - app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artistId}`).then(async (response) => { + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artistId}`).then(response => { this.artist = response.data.data[0]; - if (this.artistimage == '' && artistId != null){ - this.artistimage = (await this.$root.loadArtistImage(artistId) ?? '').replace('300x300','50x50') - - } }); }, methods: { diff --git a/src/renderer/views/components/libraryartist-item.ejs b/src/renderer/views/components/libraryartist-item.ejs index 405fa641..817cf623 100644 --- a/src/renderer/views/components/libraryartist-item.ejs +++ b/src/renderer/views/components/libraryartist-item.ejs @@ -58,8 +58,8 @@ }, async select(e) { let u = this.item - let u1 = await app.mk.api.music(`/v1/me/library/artists/${u.id}/albums`, { - platform: "auto", + let u1 = await app.mk.api.v3.music(`/v1/me/library/artists/${u.id}/albums`, { + "platform": "web", "include[library-albums]": "artists,tracks", "include[library-artists]": "catalog", "fields[artists]": "url", diff --git a/src/renderer/views/components/listennow-child.ejs b/src/renderer/views/components/listennow-child.ejs index d00ee262..cf85cae7 100644 --- a/src/renderer/views/components/listennow-child.ejs +++ b/src/renderer/views/components/listennow-child.ejs @@ -1,6 +1,6 @@ diff --git a/src/renderer/views/pages/apple-curator.ejs b/src/renderer/views/pages/apple-curator.ejs index c6406619..329aaa3d 100644 --- a/src/renderer/views/pages/apple-curator.ejs +++ b/src/renderer/views/pages/apple-curator.ejs @@ -1,6 +1,6 @@ diff --git a/src/renderer/views/pages/artist-feed.ejs b/src/renderer/views/pages/artist-feed.ejs index da8ff32c..e2af0b51 100644 --- a/src/renderer/views/pages/artist-feed.ejs +++ b/src/renderer/views/pages/artist-feed.ejs @@ -87,7 +87,7 @@ } try { const chunkArtistData = await Promise.all(chunks.map(chunk => - this.app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${chunk.toString()}&views=latest-release&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=2&art[url]=f`))) + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${chunk.toString()}&views=latest-release&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=2&art[url]=f`))) chunkArtistData.forEach(chunkResult => chunkResult.data.data.forEach(item => { self.artists.push(item) diff --git a/src/renderer/views/pages/artist.ejs b/src/renderer/views/pages/artist.ejs index 3093e680..b7bcab37 100644 --- a/src/renderer/views/pages/artist.ejs +++ b/src/renderer/views/pages/artist.ejs @@ -12,7 +12,7 @@
@@ -143,18 +143,9 @@ return { topSongsExpanded: false, app: this.$root, - headerVisible: true, - artistimage : '' + headerVisible: true } }, - mounted: async function () { - this.artistimage = this.data.attributes?.artwork ? this.data.attributes.artwork?.url : '' - - if (this.artistimage == '' && this.data.id != null){ - this.artistimage = await this.app.loadArtistImage(this.data.id) - } - - }, methods: { isHeaderVisible(visible) { this.headerVisible = visible diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs index b0bc8682..32a919d8 100644 --- a/src/renderer/views/pages/cider-playlist.ejs +++ b/src/renderer/views/pages/cider-playlist.ejs @@ -259,7 +259,7 @@ let friends = badges[id] if (friends) { friends.forEach(function (friend) { - self.app.mk.api.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { + self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { self.itemBadges.push(data.data.data[0]) }) }) @@ -323,7 +323,7 @@ } let kind = this.data.attributes.playParams.kind ?? this.data.type ?? ''; const truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.api.music(`v1/me/library/${truekind}/${id.toString()}`, {}, + app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, { fetchOptions: { method: "DELETE" @@ -369,7 +369,7 @@ return } console.log('sds', this.convert()) - await app.mk.api.music( + await app.mk.api.v3.music( `/v1/me/library/playlists/${this.data.attributes.playParams.id}/tracks`, {}, { @@ -449,7 +449,7 @@ if (route === '') { return } - app.mk.api.music(route).then(res => { + app.mk.api.v3.music(route).then(res => { console.log(res.data.data[0].attributes.url) app.copyToClipboard(res.data.data[0].attributes.url) }) diff --git a/src/renderer/views/pages/collection-list.ejs b/src/renderer/views/pages/collection-list.ejs index 776850fe..1fb77c90 100644 --- a/src/renderer/views/pages/collection-list.ejs +++ b/src/renderer/views/pages/collection-list.ejs @@ -84,7 +84,7 @@ } this.loading = true - this.api.music(this.data.next, app.collectionList.requestBody).then((response) => { + this.api.v3.music(this.data.next, app.collectionList.requestBody).then((response) => { console.log(response) if (!app.collectionList.response.groups) { this.data.data = this.data.data.concat(response.data.data); diff --git a/src/renderer/views/pages/home.ejs b/src/renderer/views/pages/home.ejs index 8caab9d4..d4a4169d 100644 --- a/src/renderer/views/pages/home.ejs +++ b/src/renderer/views/pages/home.ejs @@ -127,7 +127,7 @@ }, methods: { async seeAllHistory() { - let hist = await app.mk.api.music(`/v1/me/recent/played/tracks`, { + let hist = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`, { l: this.$root.mklang }) app.showCollection(hist.data, app.getLz('term.history')) @@ -160,14 +160,14 @@ } } if (playlists.length != 0) { - this.app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${playlists.toString()}`, { + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${playlists.toString()}`, { l: this.$root.mklang }).then(playlistsData => { self.favorites.push(...playlistsData.data) }) } if (libraryPlaylists.length != 0) { - this.app.mk.api.music(`v1/me/library/playlists/${playlists.toString()}`, { + this.app.mk.api.v3.music(`v1/me/library/playlists/${playlists.toString()}`, { l: this.$root.mklang }).then(playlistsData => { self.favorites.push(...playlistsData.data) @@ -184,7 +184,7 @@ } try { const chunkArtistData = await Promise.all(chunks.map(chunk => - this.app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${chunk.toString()}&views=latest-release&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=2&art[url]=f`))) + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${chunk.toString()}&views=latest-release&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=2&art[url]=f`))) chunkArtistData.forEach(chunkResult => chunkResult.data.data.forEach(item => { if (item.views["latest-release"].data.length != 0) { @@ -204,7 +204,7 @@ }, async getListenNowData() { let self = this - this.app.mk.api.music(`/v1/me/recommendations?timezone=${encodeURIComponent(app.formatTimezoneOffset())}&name=listen-now&with=friendsMix,library&art[social-profiles:url]=c&art[url]=c,f&omit[resource]=autos&relate[editorial-items]=contents&extend=editorialCard,editorialVideo&extend[albums]=artistUrl&extend[library-albums]=artistUrl,editorialVideo&extend[playlists]=artistNames,editorialArtwork,editorialVideo&extend[library-playlists]=artistNames,editorialArtwork,editorialVideo&extend[social-profiles]=topGenreNames&include[albums]=artists&include[songs]=artists&include[music-videos]=artists&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url&fields[artists]=name,url&extend[stations]=airDate,supportsAirTimeUpdates&meta[stations]=inflectionPoints&types=artists,albums,editorial-items,library-albums,library-playlists,music-videos,playlists,stations,activities,apple-curators,curators&platform=auto&l=${this.$root.mklang}`).then((data) => { + this.app.mk.api.v3.music(`/v1/me/recommendations?timezone=${encodeURIComponent(app.formatTimezoneOffset())}&name=listen-now&with=friendsMix,library,social&art[social-profiles:url]=c&art[url]=c,f&omit[resource]=autos&relate[editorial-items]=contents&extend=editorialCard,editorialVideo&extend[albums]=artistUrl&extend[library-albums]=artistUrl,editorialVideo&extend[playlists]=artistNames,editorialArtwork,editorialVideo&extend[library-playlists]=artistNames,editorialArtwork,editorialVideo&extend[social-profiles]=topGenreNames&include[albums]=artists&include[songs]=artists&include[music-videos]=artists&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url&fields[artists]=name,url&extend[stations]=airDate,supportsAirTimeUpdates&meta[stations]=inflectionPoints&types=artists,albums,editorial-items,library-albums,library-playlists,music-movies,music-videos,playlists,stations,uploaded-audios,uploaded-videos,activities,apple-curators,curators,tv-shows,social-upsells&platform=web&l=${this.$root.mklang}`).then((data) => { console.log(data.data.data[1]) try { self.madeForYou = data.data.data.filter(section => { @@ -227,7 +227,7 @@ self.sectionsReady.push("friendsListeningTo") }); - app.mk.api.music("/v1/me/social/profile/").then((response) => { + app.mk.api.v3.music("/v1/me/social/profile/").then((response) => { self.profile = response.data.data[0] }) diff --git a/src/renderer/views/pages/library-videos.ejs b/src/renderer/views/pages/library-videos.ejs index d0835075..6c9e458d 100644 --- a/src/renderer/views/pages/library-videos.ejs +++ b/src/renderer/views/pages/library-videos.ejs @@ -30,7 +30,7 @@ mounted() { this.$nextTick(async function () { if (this.$data.videos == null || this.$data.videos.length == 0) - this.$data.videos = (await this.$root.mk.api.music('/v1/me/library/music-videos')).data?.data ?? [] + this.$data.videos = (await this.$root.mk.api.v3.music('/v1/me/library/music-videos')).data?.data ?? [] this.$data.loaded = true }) } diff --git a/src/renderer/views/pages/listen_now.ejs b/src/renderer/views/pages/listen_now.ejs index 6449ca8d..d33a44ec 100644 --- a/src/renderer/views/pages/listen_now.ejs +++ b/src/renderer/views/pages/listen_now.ejs @@ -1,8 +1,8 @@ diff --git a/src/renderer/views/pages/playlist-inline.ejs b/src/renderer/views/pages/playlist-inline.ejs index c78637fb..a088f31c 100644 --- a/src/renderer/views/pages/playlist-inline.ejs +++ b/src/renderer/views/pages/playlist-inline.ejs @@ -283,7 +283,7 @@ let friends = badges[id] if (friends) { friends.forEach(function (friend) { - self.app.mk.api.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { + self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { self.itemBadges.push(data.data.data[0]) }) }) @@ -347,7 +347,7 @@ } let kind = this.data.attributes.playParams.kind ?? this.data.type ?? ''; const truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.api.music(`v1/me/library/${truekind}/${id.toString()}`, {}, + app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, { fetchOptions: { method: "DELETE" @@ -393,7 +393,7 @@ return } console.log('sds', this.convert()) - await app.mk.api.music( + await app.mk.api.v3.music( `/v1/me/library/playlists/${this.data.attributes.playParams.id}/tracks`, {}, { @@ -473,7 +473,7 @@ if (route === '') { return } - app.mk.api.music(route).then(res => { + app.mk.api.v3.music(route).then(res => { console.log(res.data.data[0].attributes.url) app.copyToClipboard(res.data.data[0].attributes.url) }) diff --git a/src/renderer/views/pages/podcasts.ejs b/src/renderer/views/pages/podcasts.ejs index fe5ffe19..b13821ff 100644 --- a/src/renderer/views/pages/podcasts.ejs +++ b/src/renderer/views/pages/podcasts.ejs @@ -165,7 +165,7 @@ } }, async mounted() { - let podcastShow = await app.mk.api.podcasts(`/v1/me/library/podcasts?include=episodes`) + let podcastShow = await app.mk.api.v3.podcasts(`/v1/me/library/podcasts?include=episodes`) this.podcasts = podcastShow.data.data if (podcastShow.data.next) { await this.getNext(podcastShow.data.next) @@ -190,7 +190,7 @@ if(this.search.term == "") { return } - app.mk.api.podcasts("/v1/catalog/us/search", {term: this.search.term, types: ["podcasts"], limit: 25}).then(response => { + app.mk.api.v3.podcasts("/v1/catalog/us/search", {term: this.search.term, types: ["podcasts"], limit: 25}).then(response => { console.log(response) self.search.results = response.data.results.podcasts.data }) @@ -215,7 +215,7 @@ }, async getEpisodes(podcast) { this.episodes = [] - let eps = await app.mk.api.podcasts(`/v1/catalog/${app.mk.storefrontId}/podcasts/${podcast.id}?include=episodes`) + let eps = await app.mk.api.v3.podcasts(`/v1/catalog/${app.mk.storefrontId}/podcasts/${podcast.id}?include=episodes`) eps.data.data[0].relationships.episodes.data.forEach(ep => { this.episodes.push(ep) @@ -226,7 +226,7 @@ }, async getNextEpisodes(next, podcastId) { - let podcastShow = await app.mk.api.podcasts(next) + let podcastShow = await app.mk.api.v3.podcasts(next) if(podcastId != this.podcastSelected.id) { return } @@ -238,7 +238,7 @@ } }, async getNext(next) { - let podcastShow = await app.mk.api.podcasts(next) + let podcastShow = await app.mk.api.v3.podcasts(next) this.podcasts = this.podcasts.concat(podcastShow.data.data) if (podcastShow.data.next) { await this.getNext(podcastShow.data.next) diff --git a/src/renderer/views/pages/replay.ejs b/src/renderer/views/pages/replay.ejs index 40b5be92..3b4bbe5f 100644 --- a/src/renderer/views/pages/replay.ejs +++ b/src/renderer/views/pages/replay.ejs @@ -97,12 +97,12 @@ }, async mounted() { // Get available years - let year = await app.mk.api.music("/v1/me/music-summaries/search?extend=inLibrary&period=year&fields[music-summaries]=period%2Cyear&include[music-summaries]=playlist") + let year = await app.mk.api.v3.music("/v1/me/music-summaries/search?extend=inLibrary&period=year&fields[music-summaries]=period%2Cyear&include[music-summaries]=playlist") this.years = year.data.data this.years.reverse() localStorage.setItem("seenReplay", true) this.getReplayYear(); - const musicGenre = await app.mk.api.music(`/v1/catalog/${app.mk.storefrontId}/genres/34`) + const musicGenre = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/genres/34`) this.musicTypeGenre = musicGenre.data.data[0].attributes.name }, methods: { @@ -145,10 +145,10 @@ }, async getReplayYear(year = new Date().getFullYear()) { this.loaded.id = -1 - let response = await app.mk.api.music(`/v1/me/music-summaries/year-${year}?extend=inLibrary&views=top-artists%2Ctop-albums%2Ctop-songs&include[music-summaries]=playlist&include[playlists]=tracks&includeOnly=playlist%2Ctracks%2Csong%2Cartist%2Calbum`) + let response = await app.mk.api.v3.music(`/v1/me/music-summaries/year-${year}?extend=inLibrary&views=top-artists%2Ctop-albums%2Ctop-songs&include[music-summaries]=playlist&include[playlists]=tracks&includeOnly=playlist%2Ctracks%2Csong%2Cartist%2Calbum`) let replayData = response.data.data[0] // extended playlist - let playlist = await app.mk.api.music(replayData.relationships.playlist.data[0].href, {extend: "editorialArtwork,editorialVideo"}) + let playlist = await app.mk.api.v3.music(replayData.relationships.playlist.data[0].href, {extend: "editorialArtwork,editorialVideo"}) replayData.playlist = playlist.data.data[0] this.loaded = replayData } diff --git a/src/renderer/views/pages/search.ejs b/src/renderer/views/pages/search.ejs index 038c737b..1d2ac6fd 100644 --- a/src/renderer/views/pages/search.ejs +++ b/src/renderer/views/pages/search.ejs @@ -116,7 +116,7 @@ }, async getCategories() { if (this.categoriesView != [] && this.categoriesView.length > 0) { this.categoriesReady = true; return await true; } else { - let response = await this.app.mk.api.music(`/v1/recommendations/${this.app.mk.storefrontId}?timezone=${encodeURIComponent(this.app.formatTimezoneOffset())}&name=search-landing&platform=auto&extend=editorialArtwork&art%5Burl%5D=f%2Cc&types=editorial-items%2Capple-curators%2Cactivities&l=${this.$root.mklang}`); + let response = await this.app.mk.api.v3.music(`/v1/recommendations/${this.app.mk.storefrontId}?timezone=${encodeURIComponent(this.app.formatTimezoneOffset())}&name=search-landing&platform=web&extend=editorialArtwork&art%5Burl%5D=f%2Cc&types=editorial-items%2Capple-curators%2Cactivities&l=${this.$root.mklang}`); this.categoriesView = response.data.data; console.log(this.categoriesView) this.categoriesReady = true; diff --git a/src/renderer/views/pages/zoo.ejs b/src/renderer/views/pages/zoo.ejs index 9976ba1a..e36155e6 100644 --- a/src/renderer/views/pages/zoo.ejs +++ b/src/renderer/views/pages/zoo.ejs @@ -21,7 +21,7 @@ } }, async mounted() { - app.mk.api.music("/v1/catalog/us/artists/669831761").then(response => { + app.mk.api.v3.music("/v1/catalog/us/artists/669831761").then(response => { this.artist = response.data.data[0]; this.artistLoaded = true; }); diff --git a/src/web-remote/views/components/mediaitem-square.ejs b/src/web-remote/views/components/mediaitem-square.ejs index b3fefc39..90e9aa9b 100644 --- a/src/web-remote/views/components/mediaitem-square.ejs +++ b/src/web-remote/views/components/mediaitem-square.ejs @@ -145,7 +145,7 @@ let friends = this.badges[id] if (friends) { friends.forEach(function (friend) { - self.app.mk.api.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { + self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { self.itemBadges.push(data.data.data[0]) }) }) @@ -186,7 +186,7 @@ } let kind = this.item.attributes.playParams.kind ?? this.item.type ?? ''; var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.api.music(`v1/me/library/${truekind}/${id.toString()}`,{}, + app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{}, { fetchOptions: { method: "DELETE"