This commit is contained in:
vapormusic 2022-01-14 21:03:49 +07:00
parent 3f51b05a1a
commit b4086ff8f9
6 changed files with 42 additions and 71 deletions

View file

@ -3175,7 +3175,22 @@ const app = new Vue({
ipcRenderer.send('setFullScreen', false); ipcRenderer.send('setFullScreen', false);
app.appMode = 'player'; 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)}`
},
} }
}) })

View file

@ -502,22 +502,21 @@
app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () { app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () {
app.mk.play().then(function (){ app.mk.play().then(function (){
var playlistId = id var playlistId = id
function getPlaylist(id, params, isLibrary){ function getPlaylist(id, isLibrary){
if (isLibrary){ if (isLibrary){
return app.mk.api.library.playlist(id, params) return this.app.mk.api.v3.music(`/v1/me/library/playlists/${id}`)
} else { return app.mk.api.playlist(id, params)} } else { return this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`)}
} }
try { try {
getPlaylist(id, isLibrary).then(res => {
getPlaylist(id, params, isLibrary).then(res => {
//let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); //let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
//if (app.mk.shuffleMode == 1){shuffleArray(query); } //if (app.mk.shuffleMode == 1){shuffleArray(query); }
// console.log(query) // console.log(query)
// app.mk.queue.append(query) // app.mk.queue.append(query)
if (!res.relationships.tracks.next) { if (!res.data.relationships.tracks.next) {
return return
} else { } else {
getPlaylistTracks(res.relationships.tracks.next) getPlaylistTracks(res.data.relationships.tracks.next)
} }
function getPlaylistTracks(next) { function getPlaylistTracks(next) {

View file

@ -145,8 +145,8 @@
let friends = this.badges[this.item.attributes.playParams.id ?? this.item.id] let friends = this.badges[this.item.attributes.playParams.id ?? this.item.id]
if (friends) { if (friends) {
friends.forEach(function (friend) { friends.forEach(function (friend) {
self.app.mk.api.socialProfile(friend).then(data => { self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => {
self.itemBadges.push(data) self.itemBadges.push(data.data.data[0])
}) })
}) })
} }

View file

@ -40,16 +40,8 @@
async getArtistFeed() { async getArtistFeed() {
let artists = this.followedArtists let artists = this.followedArtists
let self = this let self = this
this.app.mk.api.artists(artists, { 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 => {
"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", artistData.data.data.forEach(item => {
"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 => {
if (item.views["latest-release"].data.length != 0) { if (item.views["latest-release"].data.length != 0) {
self.artistFeed.push(item.views["latest-release"].data[0]) self.artistFeed.push(item.views["latest-release"].data[0])
} }

View file

@ -169,8 +169,8 @@
let friends = badges[id] let friends = badges[id]
if (friends) { if (friends) {
friends.forEach(function (friend) { friends.forEach(function (friend) {
self.app.mk.api.socialProfile(friend).then(data => { self.app.mk.api.v3.music(`/v1/social/${app.mk.storefrontId}/social-profiles/${friend}`).then(data => {
self.itemBadges.push(data) self.itemBadges.push(data.data.data[0])
}) })
}) })
} }

View file

@ -131,32 +131,22 @@
playlists.push(item.id) playlists.push(item.id)
} }
} }
if (playlists.length != 0) { if (playlists.length != 0) {
this.app.mk.api.playlists(playlists).then(playlistsData => { this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${playlists.toString()}`).then(playlistsData => {
self.favorites.push(...playlistsData) self.favorites.push(...playlistsData.data)
}) })
} }
if (libraryPlaylists.length != 0) { if (libraryPlaylists.length != 0) {
this.app.mk.api.library.playlists(libraryPlaylists).then(playlistsData => { this.app.mk.api.v3.music(`v1/me/library/playlists/${playlists.toString()}`).then(playlistsData => {
self.favorites.push(...playlistsData) self.favorites.push(...playlistsData.data)
}) })
} }
}, },
async getArtistFeed() { async getArtistFeed() {
let artists = this.followedArtists let artists = this.followedArtists
let self = this let self = this
this.app.mk.api.artists(artists, { 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 => {
"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", artistData.data.data.forEach(item => {
"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 => {
if (item.views["latest-release"].data.length != 0) { if (item.views["latest-release"].data.length != 0) {
self.artistFeed.push(item.views["latest-release"].data[0]) self.artistFeed.push(item.views["latest-release"].data[0])
} }
@ -176,35 +166,10 @@
}, },
async getListenNowData() { async getListenNowData() {
let self = this let self = this
this.app.mk.api.personalRecommendations("", { 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) => {
name: "listen-now", console.log(data.data.data[1])
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])
try { try {
self.madeForYou = data.data.filter(section => { self.madeForYou = data.data.data.filter(section => {
if (section.meta.metrics.moduleType == "6") { if (section.meta.metrics.moduleType == "6") {
return section return section
}; };
@ -213,8 +178,8 @@
self.sectionsReady.push("madeForYou") self.sectionsReady.push("madeForYou")
try { try {
self.recentlyPlayed = data.data[1].relationships.contents.data self.recentlyPlayed = data.data.data[1].relationships.contents.data
self.friendsListeningTo = data.data.filter(section => { self.friendsListeningTo = data.data.data.filter(section => {
if (section.meta.metrics.moduleType == "11") { if (section.meta.metrics.moduleType == "11") {
return section return section
}; };
@ -228,7 +193,7 @@
self.profile = response.data.data[0] self.profile = response.data.data[0]
}) })
} }
} }
}); });
</script> </script>