From 9641a510e5de1a10de274df7c9873694b71b29bd Mon Sep 17 00:00:00 2001 From: iou1name Date: Mon, 5 Oct 2020 11:51:43 -0400 Subject: [PATCH] add year parameter to database queries --- events.py | 17 +++++++++++------ static/scorch.js | 4 ++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/events.py b/events.py index dc44dd2..599aa17 100644 --- a/events.py +++ b/events.py @@ -25,13 +25,17 @@ async def select_album(request, ws, data): """Select an album.""" artist = data.get('artist', '') album = data.get('album', '') + date = data.get('date', '') async with request.app['pool'].acquire() as conn: tracks = await conn.fetch( - "SELECT DISTINCT discnumber, tracknumber, title FROM track " - "WHERE albumartist = $1 AND album = $2 " + "SELECT * FROM track " + "WHERE albumartist = $1 AND album = $2 AND date = $3" "ORDER BY discnumber ASC, tracknumber ASC", - artist, album) + artist, album, date) tracks = [dict(record) for record in tracks] + for track in tracks: + track.pop('filepath') + track.pop('last_modified') ret = {'event': 'album_tracks', 'ok': True, 'data': tracks} await ws.send_json(ret) @@ -40,14 +44,15 @@ async def select_track(request, ws, data): """Select a track.""" artist = data.get('artist', '') album = data.get('album', '') + date = data.get('date', '') discnumber = data.get('discnumber', '') tracknumber = data.get('tracknumber', '') async with request.app['pool'].acquire() as conn: track = await conn.fetchrow( "SELECT * FROM track " - "WHERE albumartist = $1 AND album = $2 " - "AND discnumber = $3 AND tracknumber = $4", - artist, album, discnumber, tracknumber) + "WHERE albumartist = $1 AND album = $2 AND date = $3 " + "AND discnumber = $4 AND tracknumber = $5", + artist, album, date, discnumber, tracknumber) track = dict(track) fpath = track.pop('filepath') track.pop('last_modified') diff --git a/static/scorch.js b/static/scorch.js index 14241a5..64f0e17 100644 --- a/static/scorch.js +++ b/static/scorch.js @@ -72,6 +72,7 @@ function artist_albums_recv(data) { let option = document.createElement('option'); option.value = album['album']; option.innerText = album['album']; + option.dataset['date'] = album['date'] albums_list.appendChild(option); } } @@ -85,6 +86,7 @@ function album_tracks_recv(data) { let option = document.createElement('option'); option.value = track['title']; option.innerText = track['discnumber'] + '.' + track['tracknumber'] + ' - ' + track['title']; + option.dataset['date'] = track['date'] option.dataset['discnumber'] = track['discnumber'] option.dataset['tracknumber'] = track['tracknumber'] track_list.appendChild(option); @@ -115,6 +117,7 @@ function select_album(select) { let data = { 'artist': document.querySelector('#artistList').value, 'album': select.value, + 'date': select.selectedOptions[0].dataset['date'], }; ww_send_event('select_album', data); } @@ -123,6 +126,7 @@ function select_track(select) { let data = { 'artist': document.querySelector('#artistList').value, 'album': document.querySelector('#albumList').value, + 'date': select.selectedOptions[0].dataset['date'], 'discnumber': select.selectedOptions[0].dataset['discnumber'], 'tracknumber': select.selectedOptions[0].dataset['tracknumber'], };