From 857bb78603457944c636dfa6a49fbf8706a4329b Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Tue, 18 Jun 2024 13:57:45 +0500 Subject: [PATCH 1/6] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/api/views.py | 4 +--- server/proj/audio/views.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/server/proj/api/views.py b/server/proj/api/views.py index 413478d..47d69fc 100644 --- a/server/proj/api/views.py +++ b/server/proj/api/views.py @@ -8,7 +8,6 @@ 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" api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" @@ -21,8 +20,7 @@ class FetchAndServeFile(ViewSet): response = requests.get(file_url, headers=headers) response.raise_for_status() - print(response.content) - # Create a response with the appropriate content type and headers + file_response = HttpResponse(response.content, content_type='audio/mpeg') file_response['Content-Disposition'] = 'attachment; filename="output.mp3"' return file_response diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 037e52c..2a517ae 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -49,7 +49,7 @@ class SongViewSet(GenericViewSet): def get_audio(self, request, azura_id): try: song_obj = Song.objects.get(azura_id=azura_id) - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{song_obj.azura_id}/play" + file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{song_obj.unique_id}/play" API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" headers = { "Authorization": f"Bearer {API_KEY}" From 640baa08d2c8e8f2c554224bdbd35986497fc9b3 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Tue, 18 Jun 2024 14:00:56 +0500 Subject: [PATCH 2/6] =?UTF-8?q?=D0=B5=D1=89=D0=B5=20=D1=80=D0=B0=D0=B7=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 2a517ae..59cf8a4 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -49,7 +49,7 @@ class SongViewSet(GenericViewSet): def get_audio(self, request, azura_id): try: song_obj = Song.objects.get(azura_id=azura_id) - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{song_obj.unique_id}/play" + file_url = song_obj.unique_id API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" headers = { "Authorization": f"Bearer {API_KEY}" From f926dde15356b68ee5cb8af30ef603f6a7013679 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Tue, 18 Jun 2024 14:46:46 +0500 Subject: [PATCH 3/6] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=20favorite=20song?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 59cf8a4..34c08d9 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -34,10 +34,11 @@ class SongViewSet(GenericViewSet): try: song_obj = Song.objects.get(azura_id=azura_id) favorite_songs = FavoriteSong.objects.get(user=request.user, song=song_obj) + serializer = FavoriteSongSerializer(favorite_songs) + return Response(serializer.data) except ObjectDoesNotExist: return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) - serializer = FavoriteSongSerializer(favorite_songs) - return Response(serializer.data) + @action( From 7512a99096e3f1bab6dc9ffe4bd8e680ca0be53e Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Tue, 18 Jun 2024 17:08:09 +0500 Subject: [PATCH 4/6] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=A1=D1=82=D0=B5=D1=84=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/schemas.py | 2 +- server/proj/audio/views.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/server/proj/audio/schemas.py b/server/proj/audio/schemas.py index 612123a..eea2ba5 100644 --- a/server/proj/audio/schemas.py +++ b/server/proj/audio/schemas.py @@ -50,6 +50,6 @@ class DeleteSongSchema(AutoSchema): name='azura_id', location='form', required=False, - schema=coreschema.String(description='ID трека') + schema=coreschema.String(description='ID трека с Азуры') ), ] \ No newline at end of file diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 34c08d9..6dcd6c8 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -37,10 +37,8 @@ class SongViewSet(GenericViewSet): serializer = FavoriteSongSerializer(favorite_songs) return Response(serializer.data) except ObjectDoesNotExist: - return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) + return Response({"is_favorite": False}, status=status.HTTP_200_OK) - - @action( detail=False, methods=['get'], @@ -104,7 +102,8 @@ class SongViewSet(GenericViewSet): @action(detail=False, methods=['post'], schema=DeleteSongSchema()) def delete_song(self, request): try: - item = FavoriteSong.objects.get(user=request.user, song=request.data.get('azura_id')) + song = Song.objects.get(azura_id=request.data.get('azura_id')) + item = FavoriteSong.objects.get(user=request.user, song=song.pk) item.delete() return Response(status=status.HTTP_202_ACCEPTED) except ObjectDoesNotExist: From e2a5002d91d770d5c40921aa9178581e8f231b11 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Tue, 18 Jun 2024 17:14:37 +0500 Subject: [PATCH 5/6] =?UTF-8?q?=D0=B5=D1=89=D0=B5=20=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81=D0=B0=20is=20favorite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 6dcd6c8..4fbff09 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -35,7 +35,7 @@ class SongViewSet(GenericViewSet): song_obj = Song.objects.get(azura_id=azura_id) favorite_songs = FavoriteSong.objects.get(user=request.user, song=song_obj) serializer = FavoriteSongSerializer(favorite_songs) - return Response(serializer.data) + return Response({"is_favorite": True}, status=status.HTTP_200_OK) except ObjectDoesNotExist: return Response({"is_favorite": False}, status=status.HTTP_200_OK) From 96b4309da6812c3157232f9c574c8bc4809b5dd3 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Tue, 18 Jun 2024 17:47:47 +0500 Subject: [PATCH 6/6] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B4=D0=BB=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/views.py | 1 - server/proj/conf/settings/base.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 4fbff09..4767e1b 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -34,7 +34,6 @@ class SongViewSet(GenericViewSet): try: song_obj = Song.objects.get(azura_id=azura_id) favorite_songs = FavoriteSong.objects.get(user=request.user, song=song_obj) - serializer = FavoriteSongSerializer(favorite_songs) return Response({"is_favorite": True}, status=status.HTTP_200_OK) except ObjectDoesNotExist: return Response({"is_favorite": False}, status=status.HTTP_200_OK) diff --git a/server/proj/conf/settings/base.py b/server/proj/conf/settings/base.py index d99fb5b..e8e6cfe 100644 --- a/server/proj/conf/settings/base.py +++ b/server/proj/conf/settings/base.py @@ -183,7 +183,7 @@ CORS_ALLOWED_ORIGINS = [ from datetime import timedelta SIMPLE_JWT = { - 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=180), + 'ACCESS_TOKEN_LIFETIME': timedelta(days=1), 'REFRESH_TOKEN_LIFETIME': timedelta(days=30), }