From 201313045890afbb92ce27c024667d77981ef799 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Mon, 19 Oct 2015 19:10:48 +0100 Subject: [PATCH] Fixed some db stuff and fuck up --- api/helpers.py | 28 ++++++++++++++++++---------- core/radio/ice_scrobbler.py | 4 ++++ spa/management/commands/restore.py | 25 +++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 spa/management/commands/restore.py diff --git a/api/helpers.py b/api/helpers.py index 07d4da2..7065a6b 100644 --- a/api/helpers.py +++ b/api/helpers.py @@ -80,14 +80,22 @@ class RadioHelper(Helper): return Response(data=ret, status=HTTP_200_OK) def post(self, request): - if 'action' in request.query_params: - action = request.query_params.get('action') - if action == 'shuffle': - ice_scrobbler.shuffle() - return Response(status=HTTP_200_OK) - if 'update' in request.query_params and 'url' in request.query_params: - activity.post_activity('site:radio_changed', message={ - 'description': request.query_params.get('update'), - 'url': request.query_params.get('url') - }) + try: + if 'action' in request.query_params: + action = request.query_params.get('action') + if action == 'shuffle': + ice_scrobbler.shuffle() + return Response(status=HTTP_200_OK) + if action == 'play': + m = Mix.objects.get(slug=request.query_params.get('slug')) + ice_scrobbler.play(m.get_stream_url()) + return Response(status=HTTP_200_OK) + if 'update' in request.query_params and 'url' in request.query_params: + activity.post_activity('site:radio_changed', message={ + 'description': request.query_params.get('update'), + 'url': request.query_params.get('url') + }) + except: + pass + return Response(status=HTTP_400_BAD_REQUEST) diff --git a/core/radio/ice_scrobbler.py b/core/radio/ice_scrobbler.py index 61bf26b..fb47d47 100644 --- a/core/radio/ice_scrobbler.py +++ b/core/radio/ice_scrobbler.py @@ -45,6 +45,10 @@ def shuffle(): url = "http://%s:%s/a/shuffle" % (settings.RADIO_HOST, settings.RADIO_PORT) r = requests.post(url) +def play(url): + url = "http://%s:%s/a/shuffle" % (settings.RADIO_HOST, settings.RADIO_PORT) + r = requests.post(url) + if __name__ == '__main__': d = get_server_details("localhost", "8000", "dss") diff --git a/spa/management/commands/restore.py b/spa/management/commands/restore.py new file mode 100644 index 0000000..f9c7bc9 --- /dev/null +++ b/spa/management/commands/restore.py @@ -0,0 +1,25 @@ +from django.core.management.base import LabelCommand +import dropbox +from dss import settings + + +def _restore_database(): + """ find latest database backup """ + client = dropbox.client.DropboxClient(settings.DSS_DB_BACKUP_TOKEN) + + +class Command(LabelCommand): + help = ( + "Handles restoring of items backed up" + ) + missing_args_message = "Enter one of [database, settings, media, all]" + + def handle_label(self, label, **options): + if label == "database": + _restore_database() + if label == "settings": + pass + if label == "media": + pass + if label == "all": + _restore_database()