kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
68 wiersze
2.1 KiB
Python
68 wiersze
2.1 KiB
Python
from rest_framework import viewsets
|
|
from rest_framework.decorators import list_route
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
|
|
from funkwhale_api.common.permissions import ConditionalAuthentication
|
|
|
|
from .client import api
|
|
|
|
|
|
class ReleaseDetail(APIView):
|
|
permission_classes = [ConditionalAuthentication]
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
result = api.releases.get(id=kwargs["uuid"], includes=["artists", "recordings"])
|
|
return Response(result)
|
|
|
|
|
|
class ArtistDetail(APIView):
|
|
permission_classes = [ConditionalAuthentication]
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
result = api.artists.get(id=kwargs["uuid"], includes=["release-groups"])
|
|
# import json; print(json.dumps(result, indent=4))
|
|
return Response(result)
|
|
|
|
|
|
class ReleaseGroupBrowse(APIView):
|
|
permission_classes = [ConditionalAuthentication]
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
result = api.release_groups.browse(artist=kwargs["artist_uuid"])
|
|
return Response(result)
|
|
|
|
|
|
class ReleaseBrowse(APIView):
|
|
permission_classes = [ConditionalAuthentication]
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
result = api.releases.browse(
|
|
release_group=kwargs["release_group_uuid"],
|
|
includes=["recordings", "artist-credits"],
|
|
)
|
|
return Response(result)
|
|
|
|
|
|
class SearchViewSet(viewsets.ViewSet):
|
|
permission_classes = [ConditionalAuthentication]
|
|
|
|
@list_route(methods=["get"])
|
|
def recordings(self, request, *args, **kwargs):
|
|
query = request.GET["query"]
|
|
results = api.recordings.search(query)
|
|
return Response(results)
|
|
|
|
@list_route(methods=["get"])
|
|
def releases(self, request, *args, **kwargs):
|
|
query = request.GET["query"]
|
|
results = api.releases.search(query)
|
|
return Response(results)
|
|
|
|
@list_route(methods=["get"])
|
|
def artists(self, request, *args, **kwargs):
|
|
query = request.GET["query"]
|
|
results = api.artists.search(query)
|
|
# results = musicbrainzngs.search_artists(query)
|
|
return Response(results)
|