изменил адрес прода азуры + добавил файл с переменными окружения

This commit is contained in:
Mike0001-droid 2024-06-24 14:36:42 +05:00
parent 43be693e7c
commit 73417d12be
9 changed files with 23 additions and 62 deletions

2
.gitignore vendored
View File

@ -18,4 +18,6 @@ server/proj/static/rest_framework
__pycache__
media/
env/
__init__.py
.env
db.sqlite3

View File

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

View File

@ -1,5 +0,0 @@
# from django.contrib import admin
# from .models import NowPlayingSong
# # Register your models here.
# admin.site.register(NowPlayingSong)

View File

@ -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)
from conf.settings.base import AZURACAST_API_KEY, AZURACAST_URL

View File

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

View File

@ -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
MIN_LEN_PASSWORD = 8
###AZURACAST CONFIG###
AZURACAST_URL = 'https://azuracast.itradio.team/'
AZURACAST_API_KEY = config('AZURACAST_API_KEY')

View File

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