diff --git a/src/renderer/index.js b/src/renderer/index.js index 2f600323..ef1a6a4d 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3175,7 +3175,22 @@ const app = new Vue({ ipcRenderer.send('setFullScreen', false); app.appMode = 'player'; } - } + }, + formatTimezoneOffset : (e=new Date)=>{ + let leadingZeros = (e,s=2)=>{ + let n = "" + e; + for (; n.length < s; ) + n = "0" + n; + return n + } + + const s = e.getTimezoneOffset() + , n = Math.floor(Math.abs(s) / 60) + , d = Math.round(Math.abs(s) % 60); + let h = "+"; + return 0 !== s && (h = s > 0 ? "-" : "+"), + `${h}${leadingZeros(n, 2)}:${leadingZeros(d, 2)}` + }, } }) diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index a41abd87..6bbde991 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -502,22 +502,21 @@ app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () { app.mk.play().then(function (){ var playlistId = id - function getPlaylist(id, params, isLibrary){ + function getPlaylist(id, isLibrary){ if (isLibrary){ - return app.mk.api.library.playlist(id, params) - } else { return app.mk.api.playlist(id, params)} + return this.app.mk.api.v3.music(`/v1/me/library/playlists/${id}`) + } else { return this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`)} } try { - - getPlaylist(id, params, isLibrary).then(res => { + getPlaylist(id, isLibrary).then(res => { //let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); //if (app.mk.shuffleMode == 1){shuffleArray(query); } // console.log(query) // app.mk.queue.append(query) - if (!res.relationships.tracks.next) { + if (!res.data.relationships.tracks.next) { return } else { - getPlaylistTracks(res.relationships.tracks.next) + getPlaylistTracks(res.data.relationships.tracks.next) } function getPlaylistTracks(next) { diff --git a/src/renderer/views/components/mediaitem-square.ejs b/src/renderer/views/components/mediaitem-square.ejs index 859ef0b7..267e7fd2 100644 --- a/src/renderer/views/components/mediaitem-square.ejs +++ b/src/renderer/views/components/mediaitem-square.ejs @@ -145,8 +145,8 @@ let friends = this.badges[this.item.attributes.playParams.id ?? this.item.id] if (friends) { friends.forEach(function (friend) { - self.app.mk.api.socialProfile(friend).then(data => { - self.itemBadges.push(data) + self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { + self.itemBadges.push(data.data.data[0]) }) }) } diff --git a/src/renderer/views/pages/artist-feed.ejs b/src/renderer/views/pages/artist-feed.ejs index a7cfce52..b1147153 100644 --- a/src/renderer/views/pages/artist-feed.ejs +++ b/src/renderer/views/pages/artist-feed.ejs @@ -40,16 +40,8 @@ async getArtistFeed() { let artists = this.followedArtists let self = this - this.app.mk.api.artists(artists, { - "views": "featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see", - "extend": "artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero", - "extend[playlists]": "trackCount", - "include[songs]": "albums", - "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount", - "limit[artists:top-songs]": 20, - "art[url]": "f" - }, {includeResponseMeta: !0}).then(artistData => { - artistData.data.forEach(item => { + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${artists.toString()}&views=featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see&extend=artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero&extend[playlists]=trackCount&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=20&art[url]=f`).then(artistData => { + artistData.data.data.forEach(item => { if (item.views["latest-release"].data.length != 0) { self.artistFeed.push(item.views["latest-release"].data[0]) } diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs index 1f31a8be..26aa8daf 100644 --- a/src/renderer/views/pages/cider-playlist.ejs +++ b/src/renderer/views/pages/cider-playlist.ejs @@ -169,8 +169,8 @@ let friends = badges[id] if (friends) { friends.forEach(function (friend) { - self.app.mk.api.socialProfile(friend).then(data => { - self.itemBadges.push(data) + self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => { + self.itemBadges.push(data.data.data[0]) }) }) } diff --git a/src/renderer/views/pages/home.ejs b/src/renderer/views/pages/home.ejs index cb8519f2..48de707a 100644 --- a/src/renderer/views/pages/home.ejs +++ b/src/renderer/views/pages/home.ejs @@ -131,32 +131,22 @@ playlists.push(item.id) } } - if (playlists.length != 0) { - this.app.mk.api.playlists(playlists).then(playlistsData => { - self.favorites.push(...playlistsData) + if (playlists.length != 0) { + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${playlists.toString()}`).then(playlistsData => { + self.favorites.push(...playlistsData.data) }) } - if (libraryPlaylists.length != 0) { - this.app.mk.api.library.playlists(libraryPlaylists).then(playlistsData => { - self.favorites.push(...playlistsData) + if (libraryPlaylists.length != 0) { + this.app.mk.api.v3.music(`v1/me/library/playlists/${playlists.toString()}`).then(playlistsData => { + self.favorites.push(...playlistsData.data) }) } }, async getArtistFeed() { let artists = this.followedArtists let self = this - this.app.mk.api.artists(artists, { - "views": "featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see", - "extend": "artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero", - "extend[playlists]": "trackCount", - "include[songs]": "albums", - "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount", - "limit[artists:top-songs]": 20, - "art[url]": "f" - }, { - includeResponseMeta: !0 - }).then(artistData => { - artistData.data.forEach(item => { + this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${artists.toString()}&views=featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see&extend=artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero&extend[playlists]=trackCount&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=20&art[url]=f`).then(artistData => { + artistData.data.data.forEach(item => { if (item.views["latest-release"].data.length != 0) { self.artistFeed.push(item.views["latest-release"].data[0]) } @@ -176,35 +166,10 @@ }, async getListenNowData() { let self = this - this.app.mk.api.personalRecommendations("", { - 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-profiles,social-upsells", - platform: "web" - }, { - includeResponseMeta: !0, - reload: !0 - }).then((data) => { - console.log(data.data[1]) + 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`).then((data) => { + console.log(data.data.data[1]) try { - self.madeForYou = data.data.filter(section => { + self.madeForYou = data.data.data.filter(section => { if (section.meta.metrics.moduleType == "6") { return section }; @@ -213,8 +178,8 @@ self.sectionsReady.push("madeForYou") try { - self.recentlyPlayed = data.data[1].relationships.contents.data - self.friendsListeningTo = data.data.filter(section => { + self.recentlyPlayed = data.data.data[1].relationships.contents.data + self.friendsListeningTo = data.data.data.filter(section => { if (section.meta.metrics.moduleType == "11") { return section }; @@ -228,7 +193,7 @@ self.profile = response.data.data[0] }) - } + } } }); \ No newline at end of file