Ensure track selection sends its album and album artist to Lidarr
This commit is contained in:
parent
77b0e6c119
commit
083dcbd992
2 changed files with 15 additions and 5 deletions
|
|
@ -13,6 +13,7 @@ const updateLibraryBtn = document.getElementById('updateLibraryBtn');
|
||||||
const updateFrontendBtn = document.getElementById('updateFrontendBtn');
|
const updateFrontendBtn = document.getElementById('updateFrontendBtn');
|
||||||
|
|
||||||
let selectedAlbum = null;
|
let selectedAlbum = null;
|
||||||
|
let sendContext = null;
|
||||||
|
|
||||||
const CLEANUP_KEY = 'cleanupExtras';
|
const CLEANUP_KEY = 'cleanupExtras';
|
||||||
cleanupToggle.checked = localStorage.getItem(CLEANUP_KEY) === 'true';
|
cleanupToggle.checked = localStorage.getItem(CLEANUP_KEY) === 'true';
|
||||||
|
|
@ -56,7 +57,9 @@ function createAlbumCard(album, preselectedTrackNames = []) {
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
card.querySelector('button').addEventListener('click', () => openAlbumDialog(album.id, preselectedTrackNames));
|
card.querySelector('button').addEventListener('click', () =>
|
||||||
|
openAlbumDialog(album.id, preselectedTrackNames, { albumName: album.name, artistName: album.artist })
|
||||||
|
);
|
||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,7 +77,12 @@ function createTrackCard(track) {
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
card.querySelector('button').addEventListener('click', () => openAlbumDialog(track.albumId, [track.trackName]));
|
card.querySelector('button').addEventListener('click', () =>
|
||||||
|
openAlbumDialog(track.albumId, [track.trackName], {
|
||||||
|
albumName: track.albumName,
|
||||||
|
artistName: track.albumArtist || track.artist
|
||||||
|
})
|
||||||
|
);
|
||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -113,7 +121,7 @@ function renderItems(type, items) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function openAlbumDialog(albumId, preselectedTrackNames = []) {
|
async function openAlbumDialog(albumId, preselectedTrackNames = [], context = null) {
|
||||||
setStatus('Lade Albumdetails...');
|
setStatus('Lade Albumdetails...');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -121,6 +129,7 @@ async function openAlbumDialog(albumId, preselectedTrackNames = []) {
|
||||||
const preselected = new Set(preselectedTrackNames || []);
|
const preselected = new Set(preselectedTrackNames || []);
|
||||||
|
|
||||||
selectedAlbum = album;
|
selectedAlbum = album;
|
||||||
|
sendContext = context;
|
||||||
|
|
||||||
dialogTitle.textContent = album.name;
|
dialogTitle.textContent = album.name;
|
||||||
dialogArtist.textContent = `Artist: ${album.artist}`;
|
dialogArtist.textContent = `Artist: ${album.artist}`;
|
||||||
|
|
@ -203,8 +212,8 @@ async function sendToLidarr(event) {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
albumName: selectedAlbum.name,
|
albumName: sendContext?.albumName || selectedAlbum.name,
|
||||||
artistName: selectedAlbum.artist,
|
artistName: sendContext?.artistName || selectedAlbum.artist,
|
||||||
selectedTrackNames,
|
selectedTrackNames,
|
||||||
cleanupExtras: cleanupToggle.checked
|
cleanupExtras: cleanupToggle.checked
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -401,6 +401,7 @@ app.get('/api/spotify/search', async (req, res) => {
|
||||||
artist: track.artists?.map((a) => a.name).join(', ') || 'Unbekannt',
|
artist: track.artists?.map((a) => a.name).join(', ') || 'Unbekannt',
|
||||||
albumId: track.album?.id,
|
albumId: track.album?.id,
|
||||||
albumName: track.album?.name || 'Unbekannt',
|
albumName: track.album?.name || 'Unbekannt',
|
||||||
|
albumArtist: track.album?.artists?.[0]?.name || track.artists?.[0]?.name || 'Unbekannt',
|
||||||
image: track.album?.images?.[1]?.url || track.album?.images?.[0]?.url || null
|
image: track.album?.images?.[1]?.url || track.album?.images?.[0]?.url || null
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue