From 8c051bf47fc49f773b128b22037b5718f05163ca Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Thu, 20 Jun 2024 17:07:25 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D1=83=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=BE=D0=B2=20=D0=B2=20=D0=B1=D0=B0=D0=B7=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/models.py | 1 + server/proj/audio/views.py | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/server/proj/audio/models.py b/server/proj/audio/models.py index 44aecc5..b7ca203 100644 --- a/server/proj/audio/models.py +++ b/server/proj/audio/models.py @@ -23,6 +23,7 @@ class Song(models.Model): class Meta: verbose_name = 'Треки' + unique_together = ('azura_id', ) verbose_name_plural = 'Треки' diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 94e726b..d20df9a 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -192,7 +192,7 @@ class SongViewSet(GenericViewSet): except ObjectDoesNotExist: return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) - @action(detail=False, methods=['get']) + @action(detail=False, methods=['post'], schema=SongSchema()) def get_all_song(self, request): file_url = "http://82.97.242.49:10084/api/station/1/files" API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" @@ -200,8 +200,21 @@ class SongViewSet(GenericViewSet): "Authorization": f"Bearer {API_KEY}" } response = requests.get(file_url, headers=headers) + data = [] + for i in response.json(): + data.append({ + "azura_id": i.get('song_id', None), + "title": i.get('title', None), + "artist": i.get('artist', None), + "album": i.get('album', None), + "genre": i.get('genre', None), + "art": i.get('art', None) + }) + serializer = SongSerializer(data=data, many=True) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data, status=status.HTTP_200_OK) - return Response(response.json(), status=status.HTTP_200_OK)