- Downloading ${type === 'album' ? 'Album' : 'Discography'}
+ Downloading ${typeLabel}
@@ -385,7 +449,6 @@ export async function downloadCurrentTrack(track, quality, api, lyricsManager =
completeDownloadTask(track.id, true);
- // Download LRC if enabled
if (lyricsManager && lyricsSettings.shouldDownloadLyrics()) {
try {
const lyricsData = await lyricsManager.fetchLyrics(track.id);
diff --git a/js/ui.js b/js/ui.js
index c24dd3b..530be10 100644
--- a/js/ui.js
+++ b/js/ui.js
@@ -299,59 +299,60 @@ export class UIRenderer {
}
}
- async renderPlaylistPage(playlistId) {
- this.showPage('playlist');
+async renderPlaylistPage(playlistId) {
+ this.showPage('playlist');
+
+ const imageEl = document.getElementById('playlist-detail-image');
+ const titleEl = document.getElementById('playlist-detail-title');
+ const metaEl = document.getElementById('playlist-detail-meta');
+ const descEl = document.getElementById('playlist-detail-description');
+ const tracklistContainer = document.getElementById('playlist-detail-tracklist');
+
+ imageEl.src = '';
+ imageEl.style.backgroundColor = 'var(--muted)';
+ titleEl.innerHTML = '
';
+ metaEl.innerHTML = '
';
+ descEl.innerHTML = '
';
+ tracklistContainer.innerHTML = `
+
+ ${this.createSkeletonTracks(10, true)}
+ `;
+
+ try {
+ const { playlist, tracks } = await this.api.getPlaylist(playlistId);
- const imageEl = document.getElementById('playlist-detail-image');
- const titleEl = document.getElementById('playlist-detail-title');
- const metaEl = document.getElementById('playlist-detail-meta');
- const descEl = document.getElementById('playlist-detail-description');
- const tracklistContainer = document.getElementById('playlist-detail-tracklist');
+ const imageId = playlist.squareImage || playlist.image;
+ imageEl.src = this.api.getCoverUrl(imageId, '1080');
+ imageEl.style.backgroundColor = '';
+
+ titleEl.textContent = playlist.title;
+
+ const totalDuration = calculateTotalDuration(tracks);
+
+ metaEl.textContent = `${playlist.numberOfTracks} tracks • ${formatDuration(totalDuration)}`;
+
+ descEl.textContent = playlist.description || '';
- imageEl.src = '';
- imageEl.style.backgroundColor = 'var(--muted)';
- titleEl.innerHTML = '
';
- metaEl.innerHTML = '
';
- descEl.innerHTML = '
';
tracklistContainer.innerHTML = `
- ${this.createSkeletonTracks(10, true)}
`;
- try {
- const { playlist, tracks } = await this.api.getPlaylist(playlistId);
-
- imageEl.src = this.api.getCoverUrl(playlist.image || playlist.squareImage, '1280');
- imageEl.style.backgroundColor = '';
-
- titleEl.textContent = playlist.title;
-
- const totalDuration = calculateTotalDuration(tracks);
-
- metaEl.textContent = `${playlist.numberOfTracks} tracks • ${formatDuration(totalDuration)}`;
-
- descEl.textContent = playlist.description || '';
-
- tracklistContainer.innerHTML = `
-
- `;
-
- this.renderListWithTracks(tracklistContainer, tracks, true);
-
- document.title = `${playlist.title} - Monochrome`;
- } catch (error) {
- console.error("Failed to load playlist:", error);
- tracklistContainer.innerHTML = createPlaceholder(`Could not load playlist details. ${error.message}`);
- }
+ this.renderListWithTracks(tracklistContainer, tracks, true);
+
+ document.title = `${playlist.title} - Monochrome`;
+ } catch (error) {
+ console.error("Failed to load playlist:", error);
+ tracklistContainer.innerHTML = createPlaceholder(`Could not load playlist details. ${error.message}`);
}
+}
async renderArtistPage(artistId) {
this.showPage('artist');