Ultimas modificaciones a la api, creo
This commit is contained in:
@@ -114,6 +114,17 @@ def get_discs_of_artist(mbid, limit, page):
|
||||
}
|
||||
|
||||
|
||||
def get_artist_of_disc(mbid, limit, page):
|
||||
mb_artists = mb.browse_artists(params={'disc': mbid}, limit=limit, offset=limit * (page - 1))
|
||||
if 'error' in mb_artists:
|
||||
return mb_artists
|
||||
|
||||
return {
|
||||
'paginate': paginate(mb_artists.get('artist_count', 0), limit, page),
|
||||
'artists': [map_artist(mb_artists) for mb_artists in mb_artists['artists']]
|
||||
}
|
||||
|
||||
|
||||
def get_release(mbid):
|
||||
mb_release = mb.get_release_by_mbid(mbid)
|
||||
if 'error' in mb_release:
|
||||
@@ -124,6 +135,8 @@ def get_release(mbid):
|
||||
|
||||
def get_releases_of_disc(mbid, limit, page):
|
||||
mb_releases = mb.browse_releases(params={'release-group': mbid}, limit=limit, offset=limit * (page - 1))
|
||||
if 'error' in mb_releases:
|
||||
return mb_releases
|
||||
|
||||
return {
|
||||
'paginate': paginate(mb_releases.get('release_count', 0), limit, page),
|
||||
@@ -131,6 +144,17 @@ def get_releases_of_disc(mbid, limit, page):
|
||||
}
|
||||
|
||||
|
||||
def get_artist_of_release(mbid, limit, page):
|
||||
mb_artists = mb.browse_artists(params={'release': mbid}, limit=limit, offset=limit * (page - 1))
|
||||
if 'error' in mb_artists:
|
||||
return mb_artists
|
||||
|
||||
return {
|
||||
'paginate': paginate(mb_artists.get('artist_count', 0), limit, page),
|
||||
'artists': [map_artist(mb_artists) for mb_artists in mb_artists['artists']]
|
||||
}
|
||||
|
||||
|
||||
def get_recording(mbid):
|
||||
mb_recording = mb.get_recording_by_mbid(mbid)
|
||||
if 'error' in mb_recording:
|
||||
@@ -150,6 +174,28 @@ def get_recordings_of_release(mbid, limit, page):
|
||||
}
|
||||
|
||||
|
||||
def get_release_of_recording(mbid, limit, page):
|
||||
mb_releases = mb.browse_releases(params={'recording': mbid}, limit=limit, offset=limit * (page - 1))
|
||||
if 'error' in mb_releases:
|
||||
return mb_releases
|
||||
|
||||
return {
|
||||
'paginate': paginate(mb_releases.get('release_count', 0), limit, page),
|
||||
'releases': [map_release(release) for release in mb_releases.get('releases')]
|
||||
}
|
||||
|
||||
|
||||
def get_artist_of_recording(mbid, limit, page):
|
||||
mb_artists = mb.browse_artists(params={'recording': mbid}, limit=limit, offset=limit * (page - 1))
|
||||
if 'error' in mb_artists:
|
||||
return mb_artists
|
||||
|
||||
return {
|
||||
'paginate': paginate(mb_artists.get('artist_count', 0), limit, page),
|
||||
'artists': [map_recording(mb_recording) for mb_recording in mb_artists['artists']]
|
||||
}
|
||||
|
||||
|
||||
def get_cover_art_disc(mbid):
|
||||
mb_covers = mb.get_release_group_cover_art(mbid)
|
||||
if 'error' in mb_covers:
|
||||
@@ -172,6 +218,14 @@ def get_cover_art_release(mbid):
|
||||
return map_coverart(find_best_cover(mb_covers))
|
||||
|
||||
|
||||
def get_cover_art_recording(mbid):
|
||||
release = get_release_of_recording(mbid, limit=1, page=1)
|
||||
if 'error' in release:
|
||||
return None
|
||||
|
||||
return get_cover_art_release(release['releases'][0]['id'])
|
||||
|
||||
|
||||
def search_artist(query, limit, page):
|
||||
mb_artists = mb.search_artist(query=query, limit=limit, offset=limit * (page - 1))
|
||||
|
||||
@@ -197,3 +251,12 @@ def search_release(query, limit, page):
|
||||
'paginate': paginate(mb_releases['count'], limit, page),
|
||||
'releases': [map_release(r) for r in mb_releases['releases']]
|
||||
}
|
||||
|
||||
|
||||
def search_recording(query, limit, page):
|
||||
mb_recording = mb.search_recording(query=query, limit=limit, offset=limit * (page - 1))
|
||||
|
||||
return {
|
||||
'paginate': paginate(mb_recording['count'], limit, page),
|
||||
'recordings': [map_recording(r) for r in mb_recording['recordings']]
|
||||
}
|
||||
|
||||
@@ -346,3 +346,4 @@ def get_release_group_cover_art(mbid):
|
||||
:return: dictionary with the response
|
||||
"""
|
||||
return _ca('release-group', mbid)
|
||||
|
||||
|
||||
@@ -2,18 +2,25 @@ from django.urls import path
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path('artist/', views.search_artist),
|
||||
path('artist/<mbid>/', views.get_artist),
|
||||
path('artist/<mbid>/discs/', views.get_discs_of_artist),
|
||||
path('artist/', views.search_artist),
|
||||
|
||||
path('disc/<mbid>/', views.get_disc),
|
||||
path('disc/<mbid>/releases/', views.get_releases_of_disc),
|
||||
path('disc/<mbid>/coverart/', views.get_release_group_cover_art),
|
||||
path('disc/', views.search_disc),
|
||||
path('disc/<mbid>/', views.get_disc),
|
||||
path('disc/<mbid>/artist/', views.get_artist_of_disc),
|
||||
path('disc/<mbid>/releases/', views.get_releases_of_disc),
|
||||
path('disc/<mbid>/coverart/', views.get_cover_art_of_disc),
|
||||
|
||||
path('release/<mbid>/', views.get_release),
|
||||
path('release/<mbid>/recordings/', views.get_recordings_of_release),
|
||||
path('release/<mbid>/coverart', views.get_release_group_cover_art),
|
||||
path('release/', views.search_release),
|
||||
path('release/<mbid>/', views.get_release),
|
||||
path('release/<mbid>/artist/', views.get_artist_of_release),
|
||||
path('release/<mbid>/recordings/', views.get_recordings_of_release),
|
||||
path('release/<mbid>/coverart/', views.get_cover_art_of_release),
|
||||
|
||||
path('recording/', views.search_recording),
|
||||
path('recording/<mbid>/', views.get_recording),
|
||||
path('recording/<mbid>/artist/', views.get_release_of_recording),
|
||||
path('recording/<mbid>/release/', views.get_release_of_recording),
|
||||
path('recording/<mbid>/coverart/', views.get_cover_art_of_recording),
|
||||
]
|
||||
|
||||
138
fetcher/views.py
138
fetcher/views.py
@@ -5,6 +5,16 @@ from rest_framework.response import Response
|
||||
from . import musicbrainz as mb, medium
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def search_artist(request):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
query = request.GET.get('query')
|
||||
if query:
|
||||
return Response(medium.search_artist(query, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_artist(request, mbid):
|
||||
return Response(medium.get_artist(mbid))
|
||||
@@ -15,6 +25,15 @@ def get_disc(request, mbid):
|
||||
return Response(medium.get_disc(mbid))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def search_disc(request):
|
||||
query = request.GET.get('query', '')
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.search_disc(query, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_discs_of_artist(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
@@ -23,50 +42,19 @@ def get_discs_of_artist(request, mbid):
|
||||
return Response(medium.get_discs_of_artist(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_artist_of_disc(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_artist_of_disc(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_release(request, mbid):
|
||||
return Response(medium.get_release(mbid))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_releases_of_disc(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_releases_of_disc(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_recording(request, mbid):
|
||||
return Response(medium.get_recording(mbid))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_recordings_of_release(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 100))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_recordings_of_release(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def search_artist(request):
|
||||
query = request.GET.get('query', '')
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.search_artist(query, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def search_disc(request):
|
||||
query = request.GET.get('query', '')
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.search_disc(query, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def search_release(request):
|
||||
query = request.GET.get('query', '')
|
||||
@@ -76,20 +64,82 @@ def search_release(request):
|
||||
return Response(medium.search_release(query, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_releases_of_disc(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_releases_of_disc(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_artist_of_release(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_artist_of_release(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_recording(request, mbid):
|
||||
return Response(medium.get_recording(mbid))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def search_recording(request):
|
||||
query = request.GET.get('query', '')
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.search_release(query, limit, page))
|
||||
return Response(medium.search_recording(query, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_release_cover_art(request, mbid, size=None):
|
||||
return Response(mb.get_release_cover_art(mbid, size))
|
||||
def get_recordings_of_release(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 100))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_recordings_of_release(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_release_group_cover_art(request, mbid, size=None):
|
||||
return Response(mb.get_release_group_cover_art(mbid, size))
|
||||
def get_release_of_recording(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 100))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_release_of_recording(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_artist_of_recording(request, mbid):
|
||||
limit = int(request.GET.get('per_page', 10))
|
||||
page = int(request.GET.get('page', 1))
|
||||
|
||||
return Response(medium.get_artist_of_recording(mbid, limit, page))
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_cover_art_of_disc(request, mbid):
|
||||
coverart = medium.get_cover_art_disc(mbid)
|
||||
if coverart:
|
||||
return Response(coverart)
|
||||
else:
|
||||
return Response(status=404)
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_cover_art_of_release(request, mbid):
|
||||
coverart = medium.get_cover_art_release(mbid)
|
||||
if coverart:
|
||||
return Response(coverart)
|
||||
else:
|
||||
return Response(status=404)
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def get_cover_art_of_recording(request, mbid):
|
||||
coverart = medium.get_cover_art_recording(mbid)
|
||||
if coverart:
|
||||
return Response(coverart)
|
||||
else:
|
||||
return Response(status=404)
|
||||
|
||||
Reference in New Issue
Block a user