Изменил метод получения ссылки на аудио, чтобы можно было логгировать прослушивание
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
from django import views as django_views
|
||||
from django.views.generic import ListView
|
||||
from django.shortcuts import render
|
||||
from django.http import JsonResponse
|
||||
from django.http.request import HttpRequest
|
||||
from django.shortcuts import render
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from music.models import Track
|
||||
from music.models import Artist
|
||||
from music.models import Album
|
||||
from music.models import MusicLog
|
||||
|
||||
|
||||
class TrackListView(ListView):
|
||||
@@ -61,3 +63,24 @@ class AlbumDetailView(django_views.View):
|
||||
def get(self, request: HttpRequest, pk: int, *args, **kwargs):
|
||||
album = get_object_or_404(Album, id=pk)
|
||||
return render(request, "music/album_detail.html", {"album": album})
|
||||
|
||||
|
||||
class TrackAPIView(django_views.View):
|
||||
def get(self, request: HttpRequest, pk: int, *args, **kwargs):
|
||||
track = get_object_or_404(Track, id=pk)
|
||||
data = {
|
||||
"id": track.id,
|
||||
"title": track.title,
|
||||
"url": track.file.url,
|
||||
"album": {
|
||||
"id": track.album.id,
|
||||
"title": track.album.name,
|
||||
"cover_image": track.album.preview_image.url,
|
||||
"artist": {
|
||||
"id": track.album.artist.id,
|
||||
"name": track.album.artist.name,
|
||||
},
|
||||
},
|
||||
}
|
||||
MusicLog.objects.create(track=track, user_ip=request.META.get("REMOTE_ADDR", ""))
|
||||
return JsonResponse(data)
|
||||
|
||||
Reference in New Issue
Block a user