Ultimas modificaciones a la api, creo

This commit is contained in:
Daniel Cortes
2020-05-23 00:21:43 -04:00
parent eb4351c9de
commit f7008c3c27
4 changed files with 172 additions and 51 deletions

View File

@@ -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']]
}