Initial commit.

This commit is contained in:
Jim Driessen
2017-01-20 17:45:58 +01:00
commit 47e7b5b59c
85 changed files with 12276 additions and 0 deletions

View File

View File

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

View File

@ -0,0 +1,5 @@
from django.apps import AppConfig
class PlayerapiConfig(AppConfig):
name = 'playerapi'

View File

@ -0,0 +1,15 @@
from django.contrib.auth.hashers import check_password
from django.shortcuts import get_object_or_404
from django.http import HttpResponseForbidden
from queues.models import Queue
def token_required(function):
def _dec(request):
queue = get_object_or_404(Queue, id=request.POST.get('queue'))
if not check_password(request.POST.get('player_token'), queue.player_token):
return HttpResponseForbidden()
return function(request)
return _dec

View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View File

@ -0,0 +1,11 @@
from django.conf.urls import url
from . import views
app_name = 'playerapi'
urlpatterns = [
url(r'^queue', views.queue),
url(r'^play', views.play),
url(r'^next', views.next),
]

View File

@ -0,0 +1,40 @@
from datetime import datetime
from django.http import JsonResponse
from django.shortcuts import get_object_or_404
from django.views.decorators.csrf import csrf_exempt
from marietje.utils import playlist_song_to_dict
from queues.models import Queue
from .decorators import token_required
@csrf_exempt
@token_required
def queue(request):
queue = get_object_or_404(Queue, id=request.POST.get('queue'))
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]]
})
@csrf_exempt
@token_required
def play(request):
queue = get_object_or_404(Queue, id=request.POST.get('queue'))
queue.started_at = datetime.now()
queue.save()
return JsonResponse({})
@csrf_exempt
@token_required
def next(request):
queue = get_object_or_404(Queue, id=request.POST.get('queue'))
player_song = queue.current_song()
player_song.state = 2
player_song.save()
return JsonResponse({})