fix(downloads): implement downloadTracks function and fix call site
This commit is contained in:
parent
3e03d4fbab
commit
8a41719a70
2 changed files with 23 additions and 1 deletions
|
|
@ -341,6 +341,27 @@ async function downloadTracksToZip(
|
|||
}
|
||||
}
|
||||
|
||||
export async function downloadTracks(tracks, api, quality, lyricsManager = null) {
|
||||
const folderName = `Queue - ${new Date().toISOString().slice(0, 10)}`;
|
||||
|
||||
const initResult = await initializeZipDownload(folderName, tracks.length >= 20);
|
||||
if (!initResult) return; // User cancelled
|
||||
const { zip, fileHandle } = initResult;
|
||||
|
||||
const notification = createBulkDownloadNotification('queue', 'Queue', tracks.length);
|
||||
|
||||
try {
|
||||
await downloadTracksToZip(zip, tracks, folderName, api, quality, lyricsManager, notification);
|
||||
await generateAndDownloadZip(zip, folderName, notification, tracks.length, fileHandle);
|
||||
} catch (error) {
|
||||
if (error.name === 'AbortError') {
|
||||
return;
|
||||
}
|
||||
completeBulkDownload(notification, false, error.message);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export async function downloadAlbumAsZip(album, tracks, api, quality, lyricsManager = null) {
|
||||
const releaseDateStr =
|
||||
album.releaseDate || (tracks[0]?.streamStartDate ? tracks[0].streamStartDate.split('T')[0] : '');
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import {
|
|||
escapeHtml,
|
||||
} from './utils.js';
|
||||
import { sidePanelManager } from './side-panel.js';
|
||||
import { downloadQualitySettings } from './storage.js';
|
||||
|
||||
export function initializeUIInteractions(player, api) {
|
||||
const sidebar = document.querySelector('.sidebar');
|
||||
|
|
@ -73,7 +74,7 @@ export function initializeUIInteractions(player, api) {
|
|||
if (downloadBtn) {
|
||||
downloadBtn.addEventListener('click', async () => {
|
||||
const { downloadTracks } = await import('./downloads.js');
|
||||
downloadTracks(currentQueue);
|
||||
downloadTracks(currentQueue, api, downloadQualitySettings.getQuality());
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue