From 08e3f6c900d47b6159d90b3e42e0eed1c64ada8a Mon Sep 17 00:00:00 2001 From: Broque Thomas Date: Fri, 21 Nov 2025 13:31:26 -0800 Subject: [PATCH] fix liked songs --- database/music_library.db-shm | Bin 0 -> 32768 bytes database/music_library.db-wal | 0 webui/static/script.js | 10 +++++----- 3 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 database/music_library.db-shm create mode 100644 database/music_library.db-wal diff --git a/database/music_library.db-shm b/database/music_library.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 GIT binary patch literal 32768 zcmeIuAr62r3 { - const row = document.querySelector(`#download-missing-modal-${playlistId} tr[data-track-index="${task.track_index}"]`); + const row = document.querySelector(`#download-missing-modal-${CSS.escape(playlistId)} tr[data-track-index="${task.track_index}"]`); if (!row) { console.debug(`❌ [Status Update] Row not found for playlistId: ${playlistId}, track_index: ${task.track_index}`); return; @@ -5872,7 +5872,7 @@ async function cancelTrackDownloadV2(playlistId, trackIndex) { return; } - const row = document.querySelector(`#download-missing-modal-${playlistId} tr[data-track-index="${trackIndex}"]`); + const row = document.querySelector(`#download-missing-modal-${CSS.escape(playlistId)} tr[data-track-index="${trackIndex}"]`); if (!row) { console.warn(`❌ [Cancel V2] No row found for track index: ${trackIndex}`); return; @@ -5959,7 +5959,7 @@ async function cancelTrackDownload(playlistId, trackIndex) { const process = activeDownloadProcesses[playlistId]; if (!process) return; - const row = document.querySelector(`#download-missing-modal-${playlistId} tr[data-track-index="${trackIndex}"]`); + const row = document.querySelector(`#download-missing-modal-${CSS.escape(playlistId)} tr[data-track-index="${trackIndex}"]`); if (!row) return; // Prevent double cancellation @@ -9771,7 +9771,7 @@ function resetWishlistModalToIdleState() { if (downloadBar) downloadBar.style.width = '0%'; // Reset all track rows to pending state - const trackRows = document.querySelectorAll(`#download-missing-modal-${playlistId} tr[data-track-index]`); + const trackRows = document.querySelectorAll(`#download-missing-modal-${CSS.escape(playlistId)} tr[data-track-index]`); trackRows.forEach((row, index) => { const matchCell = row.querySelector(`#match-${playlistId}-${index}`); const downloadCell = row.querySelector(`#download-${playlistId}-${index}`); @@ -10422,7 +10422,7 @@ function updateCompletedModalResults(playlistId, downloadData) { let failedOrCancelledCount = 0; (downloadData.tasks || []).forEach(task => { - const row = document.querySelector(`#download-missing-modal-${playlistId} tr[data-track-index="${task.track_index}"]`); + const row = document.querySelector(`#download-missing-modal-${CSS.escape(playlistId)} tr[data-track-index="${task.track_index}"]`); if (!row) return; row.dataset.taskId = task.task_id;