From 641e5cb908742a29b2c891bacba38375905ac78f Mon Sep 17 00:00:00 2001 From: Daan Sprenkels Date: Thu, 16 Aug 2018 22:09:58 +0200 Subject: [PATCH] Refactor {,playlist_}song_to_dict --- marietje/marietje/utils.py | 17 +++++++++++------ marietje/playerapi/views.py | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/marietje/marietje/utils.py b/marietje/marietje/utils.py index c5607bb..1810ca0 100644 --- a/marietje/marietje/utils.py +++ b/marietje/marietje/utils.py @@ -4,29 +4,34 @@ from queues.models import Queue, Playlist 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 = { 'id': song.id, 'artist': song.artist, 'title': song.title, 'duration': song.duration, - 'rg_gain': song.rg_gain, - 'rg_peak': song.rg_peak, } if 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 + + if replaygain: + data['rg_gain'] = song.rg_gain, + data['rg_peak'] = song.rg_peak, + + 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 { 'id': playlist_song.id, '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 } diff --git a/marietje/playerapi/views.py b/marietje/playerapi/views.py index d81f105..344de6e 100644 --- a/marietje/playerapi/views.py +++ b/marietje/playerapi/views.py @@ -22,8 +22,8 @@ def queue(request): command.save() return JsonResponse({ - 'current_song': playlist_song_to_dict(queue.current_song(), True), - 'queue': [playlist_song_to_dict(playlist_song, True) for playlist_song in queue.queue()[:1]], + 'current_song': playlist_song_to_dict(queue.current_song(), hash=True, replaygain=True), + '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] })