This commit is contained in:
vapormusic 2022-01-15 20:58:13 +07:00
parent 5de86d3233
commit e3d7d6b4b3
7 changed files with 82 additions and 55 deletions

View file

@ -435,9 +435,9 @@ const app = new Vue({
type: self.selectedMediaItems[i].kind type: self.selectedMediaItems[i].kind
}) })
} else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) {
self.selectedMediaItems[i].kind = "albums" self.selectedMediaItems[i].kind = "albums"
let res = await self.mk.api.albumRelationship(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.map(function (i) { let ids = res.data.data.map(function (i) {
return {id: i.id, type: i.type} return {id: i.id, type: i.type}
}) })
pl_items = pl_items.concat(ids) pl_items = pl_items.concat(ids)
@ -449,8 +449,8 @@ 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)) { } 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" self.selectedMediaItems[i].kind = "library-albums"
let res = await self.mk.api.library.albumRelationship(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.map(function (i) { let ids = res.data.data.map(function (i) {
return {id: i.id, type: i.type} return {id: i.id, type: i.type}
}) })
pl_items = pl_items.concat(ids) pl_items = pl_items.concat(ids)
@ -618,8 +618,8 @@ const app = new Vue({
} catch (e) { } catch (e) {
} }
if (!previewURL) { if (!previewURL) {
app.mk.api.song(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.relationships.catalog.data[0].id}`).then((response) => {
previewURL = response.attributes.previews[0].url previewURL = response.data.data[0].attributes.previews[0].url
if (previewURL) if (previewURL)
ipcRenderer.send('getPreviewURL', previewURL) ipcRenderer.send('getPreviewURL', previewURL)
}) })
@ -947,15 +947,15 @@ const app = new Vue({
} }
let playlistId = '' let playlistId = ''
try { try {
app.mk.api.library.playlist(id, params).then(res => { app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, params).then(res => {
self.getPlaylistContinuous(res, transient) self.getPlaylistContinuous(res.data.data[0], transient)
}) })
} catch (e) { } catch (e) {
console.log(e); console.log(e);
try { try {
app.mk.api.library.playlist(id, params).then(res => { app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`,params).then(res => {
self.getPlaylistContinuous(res, transient) self.getPlaylistContinuous(res.data.data[0], transient)
}) })
} catch (err) { } catch (err) {
console.log(err) console.log(err)
@ -1625,14 +1625,14 @@ const app = new Vue({
} }
self.library.songs.downloadState = 1 self.library.songs.downloadState = 1
if (downloaded == null) { if (downloaded == null) {
app.mk.api.library.songs("", params, {includeResponseMeta: !0}).then((response) => { app.mk.api.v3.music(`/v1/me/library/songs/`, params).then((response) => {
processChunk(response) processChunk(response.data)
}) })
} else { } else {
if (downloaded.next != null && typeof downloaded.next === "function") { if (downloaded.next != null) {
downloaded.next("", params, {includeResponseMeta: !0}).then((response) => { app.mk.api.v3.music(downloaded.next, params).then((response) => {
processChunk(response) processChunk(response.data)
}) })
} else { } else {
console.log("Download next", downloaded.next) console.log("Download next", downloaded.next)
@ -1706,13 +1706,13 @@ const app = new Vue({
limit: 100, limit: 100,
} }
if (downloaded == null) { if (downloaded == null) {
app.mk.api.library.albums("", params, {includeResponseMeta: !0}).then((response) => { app.mk.api.v3.music(`/v1/me/library/albums/`, params).then((response) => {
processChunk(response) processChunk(response.data)
}) })
} else { } else {
if (downloaded.next != null && typeof downloaded.next === "function") { if (downloaded.next != null) {
downloaded.next("", params, {includeResponseMeta: !0}).then((response) => { app.mk.api.v3.music(downloaded.next, params).then((response) => {
processChunk(response) processChunk(response.data)
}) })
} else { } else {
console.log("Download next", downloaded.next) console.log("Download next", downloaded.next)
@ -1787,13 +1787,14 @@ const app = new Vue({
limit: 100, limit: 100,
} }
if (downloaded == null) { if (downloaded == null) {
app.mk.api.library.artists("", params, {includeResponseMeta: !0}).then((response) => { app.mk.api.v3.music(`/v1/me/library/artists/`, params).then((response) => {
processChunk(response) processChunk(response.data)
}) })
} else { } else {
if (downloaded.next != null && typeof downloaded.next === "function") { if (downloaded.next != null) {
downloaded.next("", "artists", {includeResponseMeta: !0}).then((response) => { app.mk.api.v3.music(downloaded.next, params).then((response) => {
processChunk(response) processChunk(response.data)
}) })
} else { } else {
console.log("Download next", downloaded.next) console.log("Download next", downloaded.next)
@ -1865,7 +1866,7 @@ const app = new Vue({
return return
} }
try { try {
this.listennow = await this.mk.api.personalRecommendations("", this.listennow = (await this.mk.api.v3.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`,
{ {
name: "listen-now", name: "listen-now",
with: "friendsMix,library,social", with: "friendsMix,library,social",
@ -1892,7 +1893,7 @@ const app = new Vue({
{ {
includeResponseMeta: !0, includeResponseMeta: !0,
reload: !0 reload: !0
}); })).data;
console.log(this.listennow) console.log(this.listennow)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
@ -1904,19 +1905,18 @@ const app = new Vue({
return return
} }
try { try {
let browse = await this.mk.api.groupings("", let browse = await app.mk.api.v3.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, {
{ platform: "web",
platform: "web", name: "music",
name: "music", "omit[resource:artists]": "relationships",
"omit[resource:artists]": "relationships", "include[albums]": "artists",
"include[albums]": "artists", "include[songs]": "artists",
"include[songs]": "artists", "include[music-videos]": "artists",
"include[music-videos]": "artists", extend: "editorialArtwork,artistUrl",
extend: "editorialArtwork,artistUrl", "fields[artists]": "name,url,artwork,editorialArtwork,genreNames,editorialNotes",
"fields[artists]": "name,url,artwork,editorialArtwork,genreNames,editorialNotes", "art[url]": "f"
"art[url]": "f" });
}); this.browsepage = browse.data.data[0];
this.browsepage = browse[0];
console.log(this.browsepage) console.log(this.browsepage)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
@ -2018,7 +2018,11 @@ const app = new Vue({
removeFromLibrary(kind, id) { removeFromLibrary(kind, id) {
let self = this let self = this
let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
this.mk.api.library.remove({[truekind]: id}).then((data) => { app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
{
fetchOptions: {
method: "DELETE"
}}).then((data) => {
self.getLibrarySongsFull(true) self.getLibrarySongsFull(true)
}) })
}, },
@ -2558,6 +2562,7 @@ const app = new Vue({
if (term == "") { if (term == "") {
return return
} }
//this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}`
this.mk.api.search(this.search.term, this.mk.api.search(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", types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels",
@ -2777,7 +2782,8 @@ const app = new Vue({
} catch (e) { } catch (e) {
} }
} else { } else {
let data = await this.mk.api.library.song(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) { if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) {
this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50); this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50);
try { try {
@ -2800,7 +2806,8 @@ const app = new Vue({
if (typeof this.mk.nowPlayingItem === "undefined") return; if (typeof this.mk.nowPlayingItem === "undefined") return;
const data = await this.mk.api.library.song(this.mk.nowPlayingItem["id"]) const data = await this.mk.api.library.song(this.mk.nowPlayingItem["id"])
try { try {
const data = await this.mk.api.library.song(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 !== "") { if (data != null && data !== "") {
document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', 'url("' + (data["attributes"]["artwork"]["url"]).toString() + '")'); document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', 'url("' + (data["attributes"]["artwork"]["url"]).toString() + '")');
@ -2814,7 +2821,8 @@ const app = new Vue({
if (typeof this.mk.nowPlayingItem === "undefined") return; if (typeof this.mk.nowPlayingItem === "undefined") return;
const data = await this.mk.api.library.song(this.mk.nowPlayingItem["id"]) const data = await this.mk.api.library.song(this.mk.nowPlayingItem["id"])
try { try {
const data = await this.mk.api.library.song(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 !== "") { if (data != null && data !== "") {
getBase64FromUrl((data["attributes"]["artwork"]["url"]).toString()).then(img => { getBase64FromUrl((data["attributes"]["artwork"]["url"]).toString()).then(img => {
@ -2965,8 +2973,9 @@ const app = new Vue({
}, },
fetchPlaylist(id, callback) { fetchPlaylist(id, callback) {
// id can be found in playlist.attributes.playParams.globalId // id can be found in playlist.attributes.playParams.globalId
this.mk.api.playlist(id).then(res => { // this.mk.api.
callback(res) this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => {
callback(res.data.data[0])
}) })
// tracks are found in relationship.data // tracks are found in relationship.data

View file

@ -70,14 +70,14 @@
}, },
async select(e) { async select(e) {
let u = this.item let u = this.item
let u1 = await app.mk.api.library.artistRelationship(u.id,"albums", let u1 = await app.mk.api.v3.music(`/v1/me/library/artists/${u.id}/albums`,
{platform: "web", {platform: "web",
"include[library-albums]": "artists,tracks", "include[library-albums]": "artists,tracks",
"include[library-artists]": "catalog", "include[library-artists]": "catalog",
"fields[artists]": "url", "fields[artists]": "url",
"includeOnly": "catalog,artists"} "includeOnly": "catalog,artists"}
) )
app.showCollection({data : Object.assign({},u1)}, u.attributes.name?? '', ''); app.showCollection({data : Object.assign({},u1.data.data)}, u.attributes.name?? '', '');
}, },
getArtwork(){ getArtwork(){
let u = "" let u = ""

View file

@ -122,7 +122,11 @@
} }
let kind = this.item.attributes.playParams.kind ?? this.item.type ?? ''; let kind = this.item.attributes.playParams.kind ?? this.item.type ?? '';
var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
app.mk.api.library.remove({[truekind]: id}) app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
{
fetchOptions: {
method: "DELETE"
}})
this.addedToLibrary = true this.addedToLibrary = true
}, },
async contextMenu(event) { async contextMenu(event) {

View file

@ -110,7 +110,11 @@
} }
let kind = this.item.attributes.playParams.kind ?? this.item.type ?? ''; let kind = this.item.attributes.playParams.kind ?? this.item.type ?? '';
var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
app.mk.api.library.remove({[truekind]: id}) app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
{
fetchOptions: {
method: "DELETE"
}})
this.addedToLibrary = true this.addedToLibrary = true
}, },
subtitleSearchNavigate(item) { subtitleSearchNavigate(item) {

View file

@ -185,7 +185,11 @@
} }
let kind = this.item.attributes.playParams.kind ?? this.item.type ?? ''; let kind = this.item.attributes.playParams.kind ?? this.item.type ?? '';
var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
app.mk.api.library.remove({[truekind]: id}) app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
{
fetchOptions: {
method: "DELETE"
}})
this.addedToLibrary = true this.addedToLibrary = true
}, },
uuidv4() { uuidv4() {

View file

@ -181,7 +181,9 @@
this.children = [] this.children = []
this.getChildren() this.getChildren()
this.toggleFolder() this.toggleFolder()
this.$root.mk.api.library.playlistFolderChildren(item.id).then(children => {
this.$root.mk.api.v3.music(`v1/me/library/playlist-folders/${item.id}/children`).then(data => {
let children = data.data.data;
children.forEach(child => { children.forEach(child => {
if(!self.$root.playlists.listing.find(listing => listing.id == child.id)) { if(!self.$root.playlists.listing.find(listing => listing.id == child.id)) {
child.parent = self.item.id child.parent = self.item.id

View file

@ -234,7 +234,11 @@
} }
let kind = this.data.attributes.playParams.kind ?? this.data.type ?? ''; let kind = this.data.attributes.playParams.kind ?? this.data.type ?? '';
const truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; const truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
app.mk.api.library.remove({[truekind]: id}) app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
{
fetchOptions: {
method: "DELETE"
}})
this.inLibrary = false this.inLibrary = false
this.confirm = false this.confirm = false
}, },