From 352f817dd52ad714e0fa569c560dcc8197185cd9 Mon Sep 17 00:00:00 2001 From: iou1name Date: Mon, 3 Feb 2025 12:59:14 -0500 Subject: [PATCH] implement select_track() --- database.py | 6 +----- static/pyrite.js | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/database.py b/database.py index 14b04b0..8988e75 100644 --- a/database.py +++ b/database.py @@ -23,10 +23,6 @@ async def get_random_track(request): 'src': convert_filepath(art256), 'sizes': '256x256', 'type': 'image/jpeg' - }, { - 'src': convert_filepath(art64), - 'sizes': '64x64', - 'type': 'image/jpeg' } ] return track @@ -71,7 +67,7 @@ async def get_tracks(request, albumartist, album, date): ) tracks = [dict(t) for t in tracks] for track in tracks: - track.pop('filepath') + track['filepath'] = convert_filepath(track['filepath']) track.pop('last_modified') return tracks diff --git a/static/pyrite.js b/static/pyrite.js index 2094def..3be431e 100644 --- a/static/pyrite.js +++ b/static/pyrite.js @@ -109,6 +109,24 @@ function populate_albums(data) { } } +function select_track(event) { + let track = {} + track['artist'] = document.querySelector('input[name=artist]:checked').value; + track['album'] = document.querySelector('input[name=album]:checked').value; + track['title'] = document.querySelector('input[name=track]:checked').value; + + let art_url = document.querySelector('input[name=album]:checked').parentElement.querySelector('img').src; + art_url = art_url.replace('64x64', '256x256'); + let artwork = [{'src': art_url, 'sizes': '256x256', 'type': 'image/jpeg'}]; + track['artwork'] = artwork; + + let track_url = new URL(event.srcElement.parentElement.querySelector('.track').dataset.url, window.location); + + update_now_playing(track); + player.src = track_url; + playTrack(); +} + function clear_tracks() { let tracks = document.querySelector('#track_list'); while (tracks.firstChild) { @@ -183,7 +201,6 @@ function setMediaSession(track) { } function update_now_playing(track) { - track.artwork.pop(1); // remove lower resolution option document.querySelector('#now_playing_artist').textContent = track.artist; document.querySelector('#now_playing_album').textContent = track.album; document.querySelector('#now_playing_title').textContent = track.title;