Skip to content

Commit 24f152d

Browse files
committed
working playlist albums
1 parent d297d43 commit 24f152d

2 files changed

Lines changed: 31 additions & 9 deletions

File tree

webui/src/client/views/SettingsPage.vue

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -991,13 +991,6 @@ function canDownload(bitrate: number) {
991991
class="settings-container__third settings-container__third--only-checkbox"
992992
>
993993

994-
<label class="with-checkbox">
995-
<input v-model="settings.downloadAlbumSingles" type="checkbox" />
996-
<span class="checkbox-text">{{
997-
t("settings.downloads.downloadAlbumSingles")
998-
}}</span>
999-
</label>
1000-
1001994
<label class="with-checkbox">
1002995
<input v-model="settings.fallbackBitrate" type="checkbox" />
1003996
<span class="checkbox-text">{{
@@ -1059,6 +1052,13 @@ function canDownload(bitrate: number) {
10591052
t("settings.downloads.createM3U8File")
10601053
}}</span>
10611054
</label>
1055+
1056+
<label class="with-checkbox">
1057+
<input v-model="settings.downloadAlbumSingles" type="checkbox" />
1058+
<span class="checkbox-text">{{
1059+
t("settings.downloads.downloadAlbumSingles")
1060+
}}</span>
1061+
</label>
10621062
</div>
10631063
</div>
10641064

webui/src/server/deemixApp.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ export class DeemixApp {
175175
return result;
176176
}
177177

178-
async addToQueue(
178+
async getDownloadObjects(
179179
dz: Deezer,
180180
url: string[],
181181
bitrate: number,
@@ -241,8 +241,30 @@ export class DeemixApp {
241241
});
242242
}
243243

244-
const slimmedObjects: Record<string, any>[] = [];
244+
return downloadObjs;
245+
}
246+
247+
async addToQueue(
248+
dz: Deezer,
249+
url: string[],
250+
bitrate: number,
251+
retry: boolean = false
252+
) {
253+
let downloadObjs = await this.getDownloadObjects(dz, url, bitrate, retry);
254+
if (this.settings.downloadAlbumSingles) {
255+
const albumUrls = [];
256+
downloadObjs.forEach((downloadObj) => {
257+
if (downloadObj.type === "playlist") {
258+
let playlist = new Collection(downloadObj)
259+
playlist.collection.tracks.forEach((track) => {
260+
albumUrls.push(track.album.link)
261+
});
262+
}
263+
});
264+
downloadObjs = await this.getDownloadObjects(dz, albumUrls, bitrate, retry);
265+
}
245266

267+
const slimmedObjects: Record<string, any>[] = [];
246268
downloadObjs.forEach((downloadObj) => {
247269
// Check if element is already in queue
248270
if (Object.keys(this.queue).includes(downloadObj.uuid) && !retry) {

0 commit comments

Comments
 (0)