описал функцию для получения уникального id трека

This commit is contained in:
Mike0001-droid 2024-06-07 16:09:05 +05:00
parent 4fff024546
commit 4df39b180f
3 changed files with 27 additions and 27 deletions

View File

@ -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"

View File

@ -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)

View File

@ -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,28 +18,10 @@ 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'],
"user": request.user.pk
} """
serializer = SongSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
data = {
"song": serializer.data['id'],
"song": song.id,
"user": request.user.pk
}
serializer_1 = FavoriteSongSerializer(data=data)
@ -47,6 +30,21 @@ class SongViewSet(ViewSet):
return Response(serializer_1.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
else:
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())