diff --git a/src/renderer/index.js b/src/renderer/index.js index c2ab9110..774bc814 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -365,23 +365,39 @@ const app = new Vue({ promptAddToPlaylist() { app.modals.addToPlaylist = true; }, - addSelectedToPlaylist(playlist_id) { + async addSelectedToPlaylist(playlist_id) { let self = this let pl_items = [] for (let i = 0; i < self.selectedMediaItems.length; i++) { - if (self.selectedMediaItems[i].kind == "song") { + if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") { self.selectedMediaItems[i].kind = "songs" - } else if (self.selectedMediaItems[i].kind == "album") { + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true ) { self.selectedMediaItems[i].kind = "albums" - } else if (self.selectedMediaItems[i].kind == "library-song") { - self.selectedMediaItems[i].kind = "library-songs" - } else if (self.selectedMediaItems[i].kind == "library-album") { + let res = await self.mk.api.albumRelationship(self.selectedMediaItems[i].id,"tracks"); + let ids = res.map(function(i) {return {id:i.id, type: i.type}}) + pl_items = pl_items.concat(ids) + } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") { + self.selectedMediaItems[i].kind = "library-songs" + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } 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.library.albumRelationship(self.selectedMediaItems[i].id,"tracks"); + let ids = res.map(function(i) {return {id:i.id, type: i.type}}) + pl_items = pl_items.concat(ids) + } else { + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) } - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) + } this.modals.addToPlaylist = false this.mk.api.library.appendTracksToPlaylist(playlist_id, pl_items).then(() => { diff --git a/src/renderer/style.less b/src/renderer/style.less index 273b4763..96434a39 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -1552,7 +1552,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { overflow-x: hidden; display: flex; flex-flow: column; - font-family: 'Inter', 'Noto Sans JP','Noto Sans SC','Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif; + font-family: 'Inter', 'Noto Sans JP','Source Han Sans SC', 'Source Han Sans HK','Noto Sans SC','Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif; } .lyric-body .no-lyrics { @@ -3656,6 +3656,7 @@ div#captions { background: rgba(0, 0, 0, 0.6); color: yellow; white-space: pre-line; + font-family: 'Inter', 'Noto Sans JP','Source Han Sans SC', 'Source Han Sans HK','Source Han Sans SC', 'Source Han Sans HK','Noto Sans SC','Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif; } [v-cloak] { diff --git a/src/renderer/views/components/mediaitem-square-large.ejs b/src/renderer/views/components/mediaitem-square-large.ejs index 5f07c19a..4bb1098f 100644 --- a/src/renderer/views/components/mediaitem-square-large.ejs +++ b/src/renderer/views/components/mediaitem-square-large.ejs @@ -132,7 +132,7 @@ await this.isInLibrary() if (app.selectedMediaItems.length <= 1) { app.selectedMediaItems = [] - app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid) + app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid, this.item.attributes.playParams.isLibrary ?? false) } else { useMenu = "multiple" } diff --git a/src/renderer/views/components/mediaitem-square-sp.ejs b/src/renderer/views/components/mediaitem-square-sp.ejs index ff8bd402..09fb246c 100644 --- a/src/renderer/views/components/mediaitem-square-sp.ejs +++ b/src/renderer/views/components/mediaitem-square-sp.ejs @@ -144,7 +144,7 @@ await this.isInLibrary() if (app.selectedMediaItems.length <= 1) { app.selectedMediaItems = [] - app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid) + app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid, this.item.attributes.playParams.isLibrary ?? false) } else { useMenu = "multiple" } diff --git a/src/renderer/views/components/mediaitem-square.ejs b/src/renderer/views/components/mediaitem-square.ejs index 9ba6cabe..e6727ed5 100644 --- a/src/renderer/views/components/mediaitem-square.ejs +++ b/src/renderer/views/components/mediaitem-square.ejs @@ -171,7 +171,7 @@ let useMenu = "normal" if (app.selectedMediaItems.length <= 1) { app.selectedMediaItems = [] - app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid) + app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid, this.item.attributes.playParams.isLibrary ?? false) } else { useMenu = "multiple" }