описал функцию для получения уникального id трека
This commit is contained in:
parent
4fff024546
commit
4df39b180f
|
|
@ -8,7 +8,7 @@ from rest_framework.decorators import action
|
|||
from rest_framework.permissions import AllowAny
|
||||
|
||||
class FetchAndServeFile(ViewSet):
|
||||
|
||||
#http://82.97.242.49:10084/api/station/it-radio/file/5196269acd9d54e86297557a6d9a7aab/
|
||||
def list(self, request):
|
||||
file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/fc6377b2dae75d29358783bc/play"
|
||||
api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ from account.models import MyUser
|
|||
from django.template.defaultfilters import slugify
|
||||
|
||||
class Song(models.Model):
|
||||
#unique_id = models.CharField('ID трека для плеера', max_length=255)
|
||||
azura_id = models.CharField('ID трека с Азуры', max_length=255)
|
||||
title = models.CharField('Название трека', max_length=255)
|
||||
artist = models.CharField('Исполнитель', max_length=255)
|
||||
|
|
@ -11,6 +12,7 @@ class Song(models.Model):
|
|||
art = models.CharField('Изображение трека', blank=True, null=True, max_length=255)
|
||||
slug = models.SlugField('Слаг трека', blank=True, null=True)
|
||||
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.id:
|
||||
self.slug = slugify(self.azura_id)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from rest_framework.response import Response
|
|||
from rest_framework.decorators import action
|
||||
from rest_framework import status
|
||||
from django.shortcuts import get_object_or_404
|
||||
import requests
|
||||
|
||||
from .schemas import SongSchema, DeleteSongSchema
|
||||
from .models import Song, FavoriteSong
|
||||
|
|
@ -17,36 +18,33 @@ class SongViewSet(ViewSet):
|
|||
|
||||
@action(detail=False, methods=['post'], schema=SongSchema())
|
||||
def create_song(self, request):
|
||||
|
||||
""" song = Song.objects.filter(
|
||||
azura_id = request.data['azura_id'],
|
||||
title = request.data['title'],
|
||||
artist = request.data['artist'],
|
||||
album = request.data['album'],
|
||||
genre = request.data['genre'],
|
||||
art = request.data['art']
|
||||
)
|
||||
|
||||
song = get_object_or_404(Song, azura_id = request.data['azura_id'])
|
||||
if song.exists():
|
||||
data = {
|
||||
"song": serializer.data['id'],
|
||||
"song": song.id,
|
||||
"user": request.user.pk
|
||||
} """
|
||||
|
||||
|
||||
serializer = SongSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
data = {
|
||||
"song": serializer.data['id'],
|
||||
"user": request.user.pk
|
||||
}
|
||||
serializer_1 = FavoriteSongSerializer(data=data)
|
||||
if serializer_1.is_valid():
|
||||
serializer_1.save()
|
||||
return Response(serializer_1.data, status=status.HTTP_201_CREATED)
|
||||
}
|
||||
serializer_1 = FavoriteSongSerializer(data=data)
|
||||
if serializer_1.is_valid():
|
||||
serializer_1.save()
|
||||
return Response(serializer_1.data, status=status.HTTP_201_CREATED)
|
||||
else:
|
||||
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
else:
|
||||
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}"
|
||||
api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235"
|
||||
headers = {
|
||||
"Authorization": f"Bearer {api_key}"
|
||||
}
|
||||
response = requests.get(file_url, headers=headers)
|
||||
response.raise_for_status()
|
||||
serializer = SongSerializer(data=request.data)
|
||||
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(f'{response}', status=status.HTTP_201_CREATED)
|
||||
else:
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
|
||||
|
|
|
|||
Loading…
Reference in New Issue