mirror of
https://github.com/fergalmoran/dss.api.git
synced 2025-12-26 03:09:40 +00:00
Fuck playlists
This commit is contained in:
@@ -4,7 +4,7 @@ from core.utils.html import strip_tags
|
||||
|
||||
from dss import settings
|
||||
from spa import models
|
||||
from spa.models import Activity, Message
|
||||
from spa.models import Activity, Message, Playlist
|
||||
from spa.models.activity import ActivityDownload, ActivityPlay
|
||||
from spa.models.blog import Blog
|
||||
from spa.models.genre import Genre
|
||||
@@ -519,3 +519,8 @@ class BlogSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Blog
|
||||
|
||||
|
||||
class PlaylistSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Playlist
|
||||
|
||||
@@ -24,6 +24,7 @@ router.register(r'genre', views.GenreViewSet, base_name='genre')
|
||||
router.register(r'messages', views.MessageViewSet, base_name='messages')
|
||||
router.register(r'shows', views.ShowViewSet, base_name='shows')
|
||||
router.register(r'blog', views.BlogViewSet, base_name='shows')
|
||||
router.register(r'playlist', views.PlaylistViewSet, base_name='playlists')
|
||||
|
||||
|
||||
class DebugView(APIView):
|
||||
|
||||
14
api/views.py
14
api/views.py
@@ -17,7 +17,7 @@ from rest_framework.status import HTTP_202_ACCEPTED, HTTP_401_UNAUTHORIZED, HTTP
|
||||
from api import serializers
|
||||
from dss import settings
|
||||
from spa import tasks
|
||||
from spa.models import Message
|
||||
from spa.models import Message, Playlist
|
||||
from spa.models.blog import Blog
|
||||
from spa.models.genre import Genre
|
||||
from spa.models.activity import ActivityPlay
|
||||
@@ -367,3 +367,15 @@ class BlogViewSet(viewsets.ModelViewSet):
|
||||
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(user=self.request.user.userprofile)
|
||||
|
||||
|
||||
class PlaylistViewSet(viewsets.ModelViewSet):
|
||||
queryset = Playlist.objects.all()
|
||||
serializer_class = serializers.PlaylistSerializer
|
||||
permission_classes = (IsAuthenticated,)
|
||||
|
||||
def get_queryset(self):
|
||||
if self.request.user.is_authenticated:
|
||||
return self.queryset.get(user=self.request.user.userprofile)
|
||||
|
||||
return Response(status=HTTP_401_UNAUTHORIZED)
|
||||
|
||||
16
spa/management/commands/mix_mp3_tags.py
Normal file
16
spa/management/commands/mix_mp3_tags.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from django.core.management.base import NoArgsCommand
|
||||
|
||||
from core.utils.audio.mp3 import mp3_length
|
||||
from spa.models import Mix
|
||||
|
||||
|
||||
class Command(NoArgsCommand):
|
||||
def handle_noargs(self, **options):
|
||||
try:
|
||||
mix = Mix.objects.get(duration=None)
|
||||
if mix is not None:
|
||||
mix.waveform_generated = True
|
||||
mix.duration = mp3_length(path)
|
||||
mix.save(update_fields=["waveform_generated", "duration"])
|
||||
except Exception as ex:
|
||||
print("Debug exception: %s" % ex)
|
||||
@@ -19,6 +19,11 @@ from dss import settings
|
||||
logger = logging.getLogger('dss')
|
||||
|
||||
|
||||
@task(time_limit=3600)
|
||||
def send_db_signals(uid):
|
||||
waveform_generated_signal.send(sender=None, uid=uid)
|
||||
|
||||
|
||||
@task(time_limit=3600)
|
||||
def create_waveform_task(in_file, uid):
|
||||
out_file = os.path.join(settings.CACHE_ROOT, 'waveforms/%s.png' % uid)
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user