Refactor {,playlist_}song_to_dict

This commit is contained in:
Daan Sprenkels
2018-08-16 22:09:58 +02:00
parent 7b8d012924
commit 641e5cb908
2 changed files with 13 additions and 8 deletions

View File

@ -4,29 +4,34 @@ from queues.models import Queue, Playlist
from django.http import StreamingHttpResponse from django.http import StreamingHttpResponse
def song_to_dict(song, hash=False, user=False): def song_to_dict(song, hash=False, user=False, replaygain=False):
data = { data = {
'id': song.id, 'id': song.id,
'artist': song.artist, 'artist': song.artist,
'title': song.title, 'title': song.title,
'duration': song.duration, 'duration': song.duration,
'rg_gain': song.rg_gain,
'rg_peak': song.rg_peak,
} }
if hash: if hash:
data['hash'] = song.hash data['hash'] = song.hash
if user and song.user is not None and len(song.user.name) > 1: if user is not None and song.user is not None and song.user.name:
data['uploader_name'] = song.user.name data['uploader_name'] = song.user.name
if replaygain:
data['rg_gain'] = song.rg_gain,
data['rg_peak'] = song.rg_peak,
return data return data
def playlist_song_to_dict(playlist_song, hash=False, user=None): def playlist_song_to_dict(playlist_song, **options):
user = options.get('user')
return { return {
'id': playlist_song.id, 'id': playlist_song.id,
'requested_by': 'Marietje' if playlist_song.user is None else playlist_song.user.name, 'requested_by': 'Marietje' if playlist_song.user is None else playlist_song.user.name,
'song': song_to_dict(playlist_song.song, hash=hash), 'song': song_to_dict(playlist_song.song, **options),
'can_move_down': playlist_song.user is not None and playlist_song.user == user 'can_move_down': playlist_song.user is not None and playlist_song.user == user
} }

View File

@ -22,8 +22,8 @@ def queue(request):
command.save() command.save()
return JsonResponse({ return JsonResponse({
'current_song': playlist_song_to_dict(queue.current_song(), True), 'current_song': playlist_song_to_dict(queue.current_song(), hash=True, replaygain=True),
'queue': [playlist_song_to_dict(playlist_song, True) for playlist_song in queue.queue()[:1]], 'queue': [playlist_song_to_dict(playlist_song, hash=True, replaygain=True) for playlist_song in queue.queue()[:1]],
'commands': [command.command for command in commands] 'commands': [command.command for command in commands]
}) })