Fix [object Object] in M3U files and database reference error

M3U generator was calling .join() on an array of artist objects instead
of extracting .name first, producing "[object Object] - Track Name".
Now handles all artist formats: array of objects, array of strings,
single string, single object.

Also fix "name 'database' is not defined" error when updating album
year in post-processing — was using bare 'database' instead of
get_database() helper.
pull/289/head^2
Broque Thomas 1 month ago
parent 55f0532f30
commit 3d26c2b140

@ -18403,7 +18403,7 @@ def _embed_source_ids(audio_file, metadata: dict):
_pp_album_name = metadata.get('album', '')
_pp_artist_name = metadata.get('album_artist', '') or metadata.get('artist', '')
if _pp_album_name and _pp_artist_name:
conn = database._get_connection()
conn = get_database()._get_connection()
try:
cursor = conn.cursor()
cursor.execute("""

@ -12183,7 +12183,14 @@ function generateM3UContent(playlistId) {
tracks.forEach((track, index) => {
const durationSeconds = track.duration_ms ? Math.floor(track.duration_ms / 1000) : -1;
const artists = Array.isArray(track.artists) ? track.artists.join(', ') : (track.artists || 'Unknown Artist');
let artists = 'Unknown Artist';
if (Array.isArray(track.artists)) {
artists = track.artists.map(a => (typeof a === 'object' && a !== null) ? (a.name || '') : String(a)).filter(Boolean).join(', ') || 'Unknown Artist';
} else if (typeof track.artists === 'string') {
artists = track.artists;
} else if (track.artist) {
artists = typeof track.artist === 'object' ? (track.artist.name || 'Unknown Artist') : String(track.artist);
}
// Check library match status from the modal UI
const matchEl = document.getElementById(`match-${playlistId}-${index}`);

Loading…
Cancel
Save