mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2026-09-27 06:20:10 +02:00
Initial commit.
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
@@ -0,0 +1,5 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class PlayerapiConfig(AppConfig):
|
||||
name = 'playerapi'
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
@@ -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),
|
||||
]
|
||||
@@ -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({})
|
||||
Reference in New Issue
Block a user