From 73417d12be87eb1807894d152dcba20e9c7c2266 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Mon, 24 Jun 2024 14:36:42 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B0=D0=B4=D1=80=D0=B5=D1=81=20=D0=BF=D1=80=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D0=B0=D0=B7=D1=83=D1=80=D1=8B=20+=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=84=D0=B0=D0=B9=D0=BB=20=D1=81=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=BC?= =?UTF-8?q?=D0=B8=20=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + client/.env.production | 2 +- server/proj/api/admin.py | 5 --- server/proj/api/views.py | 42 +----------------- server/proj/audio/views.py | 19 ++++---- .../conf/__pycache__/urls.cpython-310.pyc | Bin 1573 -> 1485 bytes .../settings/__pycache__/base.cpython-310.pyc | Bin 3416 -> 3484 bytes server/proj/conf/settings/base.py | 10 ++++- server/proj/conf/urls.py | 5 +-- 9 files changed, 23 insertions(+), 62 deletions(-) diff --git a/.gitignore b/.gitignore index 8111fce..de137f8 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,6 @@ server/proj/static/rest_framework __pycache__ media/ env/ +__init__.py +.env db.sqlite3 diff --git a/client/.env.production b/client/.env.production index 497c183..4d0644a 100644 --- a/client/.env.production +++ b/client/.env.production @@ -8,7 +8,7 @@ ROBOTS_ALLOW= ROBOTS_DISALLOW=["/"] SERVICE_SELF_URL=//itradio.team SERVICE_URL=//itradio.team -SERVICE_URL_AUDIO=//82.97.242.49:10443 +SERVICE_URL_AUDIO=//azuracast.itradio.team SERVICE_PROTOCOL=https SERVICE_PORT=8000 SERVICE_API=/api diff --git a/server/proj/api/admin.py b/server/proj/api/admin.py index 766be41..e69de29 100644 --- a/server/proj/api/admin.py +++ b/server/proj/api/admin.py @@ -1,5 +0,0 @@ -# from django.contrib import admin -# from .models import NowPlayingSong - -# # Register your models here. -# admin.site.register(NowPlayingSong) \ No newline at end of file diff --git a/server/proj/api/views.py b/server/proj/api/views.py index 47d69fc..243726a 100644 --- a/server/proj/api/views.py +++ b/server/proj/api/views.py @@ -6,44 +6,4 @@ from rest_framework.response import Response from rest_framework import status from rest_framework.decorators import action from rest_framework.permissions import AllowAny - -class FetchAndServeFile(ViewSet): - def list(self, request): - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/fc6377b2dae75d29358783bc" - api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" - - headers = { - "Authorization": f"Bearer {api_key}" - } - - try: - response = requests.get(file_url, headers=headers) - - response.raise_for_status() - - 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 retrieve(self, request, pk=None): - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{pk}/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 +from conf.settings.base import AZURACAST_API_KEY, AZURACAST_URL diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 56e2d12..2379536 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -12,6 +12,7 @@ from django.http import HttpResponse from .schemas import SongSchema, DeleteSongSchema, PlayListSchema from .models import Song, FavoriteSong, PlayList from .serializers import SongSerializer, FavoriteSongSerializer, PlayListSerializer +from conf.settings.base import AZURACAST_URL, AZURACAST_API_KEY class PlayListViewSet(GenericViewSet): queryset = PlayList @@ -102,14 +103,14 @@ class PlayListViewSet(GenericViewSet): try: song = Song.objects.get(azura_id=request.data.get('azura_id')).pk except ObjectDoesNotExist: - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}" - API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + file_url = f"{AZURACAST_URL}api/station/it-radio/file/{request.data['azura_id']}" + API_KEY = AZURACAST_API_KEY headers = { "Authorization": f"Bearer {API_KEY}" } response = requests.get(file_url, headers=headers) data = request.data - file_play = f"http://82.97.242.49:10084/api/station/it-radio/file/{response.json()['unique_id']}/play" + file_play = f"{AZURACAST_URL}api/station/it-radio/file/{response.json()['unique_id']}/play" data.update(unique_id=file_play) song_serializer = SongSerializer(data=data) if song_serializer.is_valid(): @@ -168,7 +169,7 @@ class SongViewSet(GenericViewSet): try: song_obj = Song.objects.get(azura_id=azura_id) file_url = song_obj.unique_id - API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + API_KEY = AZURACAST_API_KEY headers = { "Authorization": f"Bearer {API_KEY}" } @@ -195,14 +196,14 @@ class SongViewSet(GenericViewSet): "user": request.user.pk } except ObjectDoesNotExist: - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}" - API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + file_url = f"{AZURACAST_URL}api/station/it-radio/file/{request.data['azura_id']}" + API_KEY = AZURACAST_API_KEY headers = { "Authorization": f"Bearer {API_KEY}" } response = requests.get(file_url, headers=headers) data = request.data - file_play = f"http://82.97.242.49:10084/api/station/it-radio/file/{response.json()['unique_id']}/play" + file_play = f"{AZURACAST_URL}/api/station/it-radio/file/{response.json()['unique_id']}/play" data.update(unique_id=file_play) serializer = SongSerializer(data=data) if serializer.is_valid(): @@ -230,8 +231,8 @@ class SongViewSet(GenericViewSet): @action(detail=False, methods=['get']) def get_all_song(self, request): - file_url = "http://82.97.242.49:10084/api/station/1/files" - API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + file_url = F"{AZURACAST_URL}api/station/1/files" + API_KEY = AZURACAST_API_KEY headers = { "Authorization": f"Bearer {API_KEY}" } diff --git a/server/proj/conf/__pycache__/urls.cpython-310.pyc b/server/proj/conf/__pycache__/urls.cpython-310.pyc index 7d8c9350489b86b61aca0949302103635983352d..f8dc8e0a75aef451412d02a16c4f58e46c4fc558 100644 GIT binary patch delta 409 zcmYk2y-EW?5XX1!%b45SoXMHX$C>XGB3M|cg%4n1mqyYFGfEC5aH3)rF<4#^wpB<9 zd%*|r3G`uX?1FoD5wd@lncr_1SoV#7*<$QCd8W?6;lpKQ%|rlCv%TlZwLkQMk(gH& zY*?jgSVNm!w2{ZU@(DZSp|i$H@r)!oqhahHb74<^;huZi*Z`AFK%%(-oG2s z{Y@m)??nZ@r0vVtJU=;BEoU5D@PL~fvbd1bUFDK+-PMvRRFZ1^THJ#Q7|TET CqgvPi delta 476 zcmYk3OG^S#6vywGaeR*BsH2YW@fi`cji5~%X;CXTGCS!UOYsp}wlt8IvyfRAx~NSM zk-NTwU!YIYD!QWvp2LCv?{_$G;jRKNvN8w;{fyVo>!@|^nJF1~o*g_+fFZ*`H__8g zy_YnTz(|>=7R*djx|2bfRFpAjiQGG^kcP?*hbW1m9ac$4b%(t~#-5A4`qg36C<9K?MzDNrwMc!7Hj@ze#CNPy-!Yzkf(abk+a> diff --git a/server/proj/conf/settings/__pycache__/base.cpython-310.pyc b/server/proj/conf/settings/__pycache__/base.cpython-310.pyc index 7434b68527db43fef65a89c551e1b60824c9dbc0..634a2e46fc59bd7fb451dffec98afd592e640e0b 100644 GIT binary patch delta 657 zcmYL`OHUe66vywmGYrExqoBM55%7WF1GKddO8aE2!9fMKRcUC`7GV3ak;8lw=#X__;O zW;lj#paB%|RNg;JQA|*b;#`T*>}^ck#$*HPDkfw?f3M@p3pdN_--Nrz;_eOJn0DG@G=&Z(1Qi1`Fr~??OBHnB OIrwRQ&{RcLO!y1T8k~>- delta 595 zcmXZY&uW?1m>e)mtBU(EER0YZ=< z=!i2wfVpKyqO`$QKEikPhiC`d0n}`5o~+Q!C4s;L$@Dz1@*DOyL1?_KAarZjHQ25!||2 zR>7B4WZ&==+@_ljP>F8QZC>qAnf4utS^lF+XZI|JIS_V^uRHh*oYi^K9be)ex6MU3itlb|GfY+^?7}8`fR2Q>+VePenIKU_z|`1U8h%Sb^CVny=#}om1^av zSbEz%ubv*2JNw06sXJ=X>ruIJF{n0%&cWcMcrkSI@A~6*E^|NIoN7{PTAW+BiD^_% z$V8zy3!ZbUPOITc-k-@{-y4NL8ME+l?eUA+%QsJJucmtBA%Nx8j0d5g!abayKlHvC e_4HS!A#{i-VbH*k1{k1A6?9NR^(^y))RliOe2%*S diff --git a/server/proj/conf/settings/base.py b/server/proj/conf/settings/base.py index 4b7f9be..bf95504 100644 --- a/server/proj/conf/settings/base.py +++ b/server/proj/conf/settings/base.py @@ -1,5 +1,6 @@ from pathlib import Path import os +from decouple import config # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -15,7 +16,7 @@ MEDIA_URL = 'media/' STATIC_ROOT = PROJECT_DIR / 'static' STATIC_URL = 'static/' # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-z242=*-knp4h=0l1*o-nyid^y0bwt4bvg3tf*wvr(qszj&!8$c' +SECRET_KEY = config('SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True @@ -160,4 +161,9 @@ CORS_ALLOW_CREDENTIALS = True CORS_ALLOWED_ORIGINS = [ 'http://localhost:5173', ] -MIN_LEN_PASSWORD = 8 \ No newline at end of file +MIN_LEN_PASSWORD = 8 + +###AZURACAST CONFIG### +AZURACAST_URL = 'https://azuracast.itradio.team/' +AZURACAST_API_KEY = config('AZURACAST_API_KEY') + diff --git a/server/proj/conf/urls.py b/server/proj/conf/urls.py index 2bc3e01..f08a65e 100644 --- a/server/proj/conf/urls.py +++ b/server/proj/conf/urls.py @@ -11,7 +11,6 @@ from rest_framework import routers from userProfile.views import TeamViewSet from django.conf import settings from rubricks.views import RubricViewSet -from api.views import FetchAndServeFile from audio.views import SongViewSet, PlayListViewSet @@ -20,7 +19,6 @@ router.register(r'teams', TeamViewSet, basename='teams') router.register(r'rubriks', RubricViewSet, basename='rubriks') router.register(r'playlists', PlayListViewSet, basename='playlists') router.register(r'song', SongViewSet, basename='song') -router.register(r'fetchandservefile', FetchAndServeFile, basename='fetchandservefile') urlpatterns = [ path('api/admin/', admin.site.urls), @@ -31,8 +29,7 @@ urlpatterns = [ path('api/', include_docs_urls(title='API docs')), path('api/radio/', include(router.urls)), path('api-auth/', include('rest_framework.urls', namespace='rest_framework')), - path('api/user/', include('account.urls', namespace='user')), - # path('webhook/', AzuraNowPlayingWebhookView.as_view(), name='webhook-receiver'), + path('api/user/', include('account.urls', namespace='user')) ] if settings.DEBUG: