From cafe5588f7d0fd91a884fd14e342c4b6c9ad5fd1 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Wed, 5 Jun 2024 17:03:07 +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=B2=D1=8C=D1=8E=D1=88=D0=BA=D1=83=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BB=D0=B5=D0=B5=D1=80=D0=B0=20=D0=BE=D0=B4=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=82=D1=80=D0=B5=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/api/views.py | 68 ++++++++++++++++++++++++++++++---------- server/proj/conf/urls.py | 2 ++ 2 files changed, 53 insertions(+), 17 deletions(-) diff --git a/server/proj/api/views.py b/server/proj/api/views.py index d71ee03..aeaa0f7 100644 --- a/server/proj/api/views.py +++ b/server/proj/api/views.py @@ -1,18 +1,52 @@ -# from rest_framework.views import APIView -# from rest_framework.response import Response -# from .models import NowPlayingSong -# from .serializers import WebhookSerializer -# import json +import requests +from django.http import HttpResponse +from rest_framework.views import APIView +from rest_framework.viewsets import ViewSet +from rest_framework.response import Response +from rest_framework import status +from rest_framework.decorators import action +from rest_framework.permissions import AllowAny -# class AzuraNowPlayingWebhookView(APIView): -# queryset = NowPlayingSong.objects.all() -# def post(self, request, *args, **kwargs): -# # Ensure the 'now_playing' data includes a 'song' key -# data = request.data.get('now_playing') -# serializer = WebhookSerializer(data=data) -# print(data) -# if serializer.is_valid(): -# song = serializer.save() -# print("valid") -# return Response(data, status=201) -# return Response(serializer.errors, status=400) \ No newline at end of file +class FetchAndServeFile(ViewSet): + + def list(self, request): + file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/fc6377b2dae75d29358783bc/play" + api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + + headers = { + "Authorization": f"Bearer {api_key}" + } + + try: + response = requests.get(file_url, headers=headers) + response.raise_for_status() + + # 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 + except requests.RequestException as e: + return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST) + + """ def get(self, request, station, song_id, *args, **kwargs): + file_url = f"http://82.97.242.49:10084/api/station/{station}/file/{song_id}/play" + api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + + headers = { + "Authorization": f"Bearer {api_key}" + } + + try: + response = requests.get(file_url, headers=headers) + response.raise_for_status() + + # 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 + except requests.RequestException as e: + return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST) """ + + \ No newline at end of file diff --git a/server/proj/conf/urls.py b/server/proj/conf/urls.py index 92846f0..585f2b4 100644 --- a/server/proj/conf/urls.py +++ b/server/proj/conf/urls.py @@ -15,11 +15,13 @@ from rest_framework import routers, serializers, viewsets from userProfile.views import TeamViewSet from django.conf import settings from rubricks.views import RubricViewSet +from api.views import FetchAndServeFile router = routers.DefaultRouter() router.register(r'news', newsViews.NewsViewSet) #router.register(r'profiles', ProfileViewSet, basename='profiles') +router.register(r'single_play', FetchAndServeFile, basename='single_play') router.register(r'teams', TeamViewSet, basename='teams') router.register(r'rubriks', RubricViewSet, basename='rubriks')