fix: persist quality metadata and display HD badge in queue
This commit is contained in:
parent
d52ed226fa
commit
50cd138f3b
2 changed files with 6 additions and 1 deletions
3
js/db.js
3
js/db.js
|
|
@ -218,6 +218,7 @@ export class MusicDatabase {
|
||||||
vibrantColor: item.album.vibrantColor || null,
|
vibrantColor: item.album.vibrantColor || null,
|
||||||
artist: item.album.artist || null,
|
artist: item.album.artist || null,
|
||||||
numberOfTracks: item.album.numberOfTracks || null,
|
numberOfTracks: item.album.numberOfTracks || null,
|
||||||
|
mediaMetadata: item.album.mediaMetadata ? { tags: item.album.mediaMetadata.tags } : null,
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
copyright: item.copyright || null,
|
copyright: item.copyright || null,
|
||||||
|
|
@ -232,6 +233,8 @@ export class MusicDatabase {
|
||||||
isTracker: item.isTracker || (item.id && String(item.id).startsWith('tracker-')),
|
isTracker: item.isTracker || (item.id && String(item.id).startsWith('tracker-')),
|
||||||
audioUrl: item.remoteUrl || item.audioUrl || null,
|
audioUrl: item.remoteUrl || item.audioUrl || null,
|
||||||
remoteUrl: item.remoteUrl || null,
|
remoteUrl: item.remoteUrl || null,
|
||||||
|
audioQuality: item.audioQuality || null,
|
||||||
|
mediaMetadata: item.mediaMetadata ? { tags: item.mediaMetadata.tags } : null,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import {
|
||||||
getTrackTitle,
|
getTrackTitle,
|
||||||
getTrackArtists,
|
getTrackArtists,
|
||||||
escapeHtml,
|
escapeHtml,
|
||||||
|
createQualityBadgeHTML,
|
||||||
} from './utils.js';
|
} from './utils.js';
|
||||||
import { sidePanelManager } from './side-panel.js';
|
import { sidePanelManager } from './side-panel.js';
|
||||||
import { downloadQualitySettings } from './storage.js';
|
import { downloadQualitySettings } from './storage.js';
|
||||||
|
|
@ -251,6 +252,7 @@ export function initializeUIInteractions(player, api, ui) {
|
||||||
const isPlaying = index === player.currentQueueIndex;
|
const isPlaying = index === player.currentQueueIndex;
|
||||||
const trackTitle = getTrackTitle(track);
|
const trackTitle = getTrackTitle(track);
|
||||||
const trackArtists = getTrackArtists(track, { fallback: 'Unknown' });
|
const trackArtists = getTrackArtists(track, { fallback: 'Unknown' });
|
||||||
|
const qualityBadge = createQualityBadgeHTML(track);
|
||||||
|
|
||||||
return `
|
return `
|
||||||
<div class="queue-track-item ${isPlaying ? 'playing' : ''}" data-queue-index="${index}" data-track-id="${track.id}" draggable="true">
|
<div class="queue-track-item ${isPlaying ? 'playing' : ''}" data-queue-index="${index}" data-track-id="${track.id}" draggable="true">
|
||||||
|
|
@ -264,7 +266,7 @@ export function initializeUIInteractions(player, api, ui) {
|
||||||
<img src="${api.getCoverUrl(track.album?.cover)}"
|
<img src="${api.getCoverUrl(track.album?.cover)}"
|
||||||
class="track-item-cover" loading="lazy">
|
class="track-item-cover" loading="lazy">
|
||||||
<div class="track-item-details">
|
<div class="track-item-details">
|
||||||
<div class="title">${escapeHtml(trackTitle)}</div>
|
<div class="title">${escapeHtml(trackTitle)} ${qualityBadge}</div>
|
||||||
<div class="artist">${escapeHtml(trackArtists)}</div>
|
<div class="artist">${escapeHtml(trackArtists)}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue