diff --git a/src/renderer/index.js b/src/renderer/index.js index 88c3cdbf..28a7a5b1 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1448,6 +1448,12 @@ const app = new Vue({ self.getLibrarySongsFull(true) }) }, + removeFromLibrary(kind,id) { + let self = this + this.mk.api.library.remove({[kind]: id }).then((data) => { + self.getLibrarySongsFull(true) + }) + }, async loadYTLyrics() { const track = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : ''; const artist = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : ''; diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index 23b93c97..671d4f68 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -15,7 +15,7 @@ - +
0) { + id = res.relationships.library.data[0].id + } + let kind = this.item.attributes.playParams.kind ?? this.data.item ?? ''; + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + if (item.attributes.playParams.id) { + console.log('remove from library', id) + app.removeFromLibrary(truekind, id) + this.addedToLibrary = false + } else if (item.id) { + console.log('remove from library', id) + app.removeFromLibrary(truekind, id) + this.addedToLibrary = false + } + }, playTrack() { let item = this.item let parent = this.parent diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs index f94f0a8a..a98b9a37 100644 --- a/src/renderer/views/pages/cider-playlist.ejs +++ b/src/renderer/views/pages/cider-playlist.ejs @@ -109,11 +109,13 @@ }, methods: { async isInLibrary () { - if (this.data.type && !this.data.type.includes('library')){ + if (this.data.type && !this.data.type.includes("library")){ // please keep using vars here - var params = {"fields[albums]": "inLibrary","relate" : "library"} - var res = await app.mkapi(this.data.attributes.playParams.kind ?? this.data.type, false , this.data.attributes.playParams.id ?? this.data.id, params); - this.inLibrary = (res && res.attributes && res.attributes.inLibrary) ? res.attributes.inLibrary : false} else {this.inLibrary = true} + var params = {"fields[playlists]": "inLibrary","fields[albums]": "inLibrary","relate" : "library"} + var res = await app.mkapi(this.data.attributes.playParams.kind ?? this.data.type, this.data.attributes.playParams.isLibrary ?? false , this.data.attributes.playParams.id ?? this.data.id, params); + this.inLibrary = (res && res.attributes && res.attributes.inLibrary) ? res.attributes.inLibrary : false + console.log(res) + } else {this.inLibrary = true} }, editPlaylist() { app.editPlaylist(this.data.id, this.data.attributes.name); @@ -123,10 +125,16 @@ app.mk.addToLibrary(id) this.inLibrary = true }, - removeFromLibrary(id) { + async removeFromLibrary(id) { + var params = {"fields[somgs]": "inLibrary","fields[albums]": "inLibrary","relate" : "library"} + var id = this.data.id ?? this.data.attributes.playParams.id + var res = await app.mkapi(this.data.attributes.playParams.kind ?? this.data.type, this.data.attributes.playParams.isLibrary ?? false , this.data.attributes.playParams.id ?? this.data.id, params); + if (res && res.relationships && res.relationships.library && res.relationships.library.data && res.relationships.library.data.length > 0) { + id = res.relationships.library.data[0].id + } let kind = this.data.attributes.playParams.kind ?? this.data.type ?? ''; var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.api.library.remove({[truekind]: this.data.id ?? this.data.attributes.playParams.id }) + app.mk.api.library.remove({[truekind]: id }) this.inLibrary = false }, editPlaylistName() {