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):
|
def get_release(mbid):
|
||||||
mb_release = mb.get_release_by_mbid(mbid)
|
mb_release = mb.get_release_by_mbid(mbid)
|
||||||
if 'error' in mb_release:
|
if 'error' in mb_release:
|
||||||
@@ -124,6 +135,8 @@ def get_release(mbid):
|
|||||||
|
|
||||||
def get_releases_of_disc(mbid, limit, page):
|
def get_releases_of_disc(mbid, limit, page):
|
||||||
mb_releases = mb.browse_releases(params={'release-group': mbid}, limit=limit, offset=limit * (page - 1))
|
mb_releases = mb.browse_releases(params={'release-group': mbid}, limit=limit, offset=limit * (page - 1))
|
||||||
|
if 'error' in mb_releases:
|
||||||
|
return mb_releases
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'paginate': paginate(mb_releases.get('release_count', 0), limit, page),
|
'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):
|
def get_recording(mbid):
|
||||||
mb_recording = mb.get_recording_by_mbid(mbid)
|
mb_recording = mb.get_recording_by_mbid(mbid)
|
||||||
if 'error' in mb_recording:
|
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):
|
def get_cover_art_disc(mbid):
|
||||||
mb_covers = mb.get_release_group_cover_art(mbid)
|
mb_covers = mb.get_release_group_cover_art(mbid)
|
||||||
if 'error' in mb_covers:
|
if 'error' in mb_covers:
|
||||||
@@ -172,6 +218,14 @@ def get_cover_art_release(mbid):
|
|||||||
return map_coverart(find_best_cover(mb_covers))
|
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):
|
def search_artist(query, limit, page):
|
||||||
mb_artists = mb.search_artist(query=query, limit=limit, offset=limit * (page - 1))
|
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),
|
'paginate': paginate(mb_releases['count'], limit, page),
|
||||||
'releases': [map_release(r) for r in mb_releases['releases']]
|
'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: dictionary with the response
|
||||||
"""
|
"""
|
||||||
return _ca('release-group', mbid)
|
return _ca('release-group', mbid)
|
||||||
|
|
||||||
|
|||||||
@@ -2,18 +2,25 @@ from django.urls import path
|
|||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
path('artist/', views.search_artist),
|
||||||
path('artist/<mbid>/', views.get_artist),
|
path('artist/<mbid>/', views.get_artist),
|
||||||
path('artist/<mbid>/discs/', views.get_discs_of_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/', 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/', 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
|
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'])
|
@api_view(['GET'])
|
||||||
def get_artist(request, mbid):
|
def get_artist(request, mbid):
|
||||||
return Response(medium.get_artist(mbid))
|
return Response(medium.get_artist(mbid))
|
||||||
@@ -15,6 +25,15 @@ def get_disc(request, mbid):
|
|||||||
return Response(medium.get_disc(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'])
|
@api_view(['GET'])
|
||||||
def get_discs_of_artist(request, mbid):
|
def get_discs_of_artist(request, mbid):
|
||||||
limit = int(request.GET.get('per_page', 10))
|
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))
|
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'])
|
@api_view(['GET'])
|
||||||
def get_release(request, mbid):
|
def get_release(request, mbid):
|
||||||
return Response(medium.get_release(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'])
|
@api_view(['GET'])
|
||||||
def search_release(request):
|
def search_release(request):
|
||||||
query = request.GET.get('query', '')
|
query = request.GET.get('query', '')
|
||||||
@@ -76,20 +64,82 @@ def search_release(request):
|
|||||||
return Response(medium.search_release(query, limit, page))
|
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'])
|
@api_view(['GET'])
|
||||||
def search_recording(request):
|
def search_recording(request):
|
||||||
query = request.GET.get('query', '')
|
query = request.GET.get('query', '')
|
||||||
limit = int(request.GET.get('per_page', 10))
|
limit = int(request.GET.get('per_page', 10))
|
||||||
page = int(request.GET.get('page', 1))
|
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'])
|
@api_view(['GET'])
|
||||||
def get_release_cover_art(request, mbid, size=None):
|
def get_recordings_of_release(request, mbid):
|
||||||
return Response(mb.get_release_cover_art(mbid, size))
|
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'])
|
@api_view(['GET'])
|
||||||
def get_release_group_cover_art(request, mbid, size=None):
|
def get_release_of_recording(request, mbid):
|
||||||
return Response(mb.get_release_group_cover_art(mbid, size))
|
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