mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-10 08:02:26 +01:00
Initial commit.
This commit is contained in:
0
marietje/playerapi/__init__.py
Normal file
0
marietje/playerapi/__init__.py
Normal file
3
marietje/playerapi/admin.py
Normal file
3
marietje/playerapi/admin.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
5
marietje/playerapi/apps.py
Normal file
5
marietje/playerapi/apps.py
Normal file
@ -0,0 +1,5 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class PlayerapiConfig(AppConfig):
|
||||
name = 'playerapi'
|
||||
15
marietje/playerapi/decorators.py
Normal file
15
marietje/playerapi/decorators.py
Normal 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
|
||||
0
marietje/playerapi/migrations/__init__.py
Normal file
0
marietje/playerapi/migrations/__init__.py
Normal file
3
marietje/playerapi/models.py
Normal file
3
marietje/playerapi/models.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
3
marietje/playerapi/tests.py
Normal file
3
marietje/playerapi/tests.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
11
marietje/playerapi/urls.py
Normal file
11
marietje/playerapi/urls.py
Normal 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),
|
||||
]
|
||||
40
marietje/playerapi/views.py
Normal file
40
marietje/playerapi/views.py
Normal 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({})
|
||||
Reference in New Issue
Block a user