Added paging to get_all_releases, this will ensure that any future (however unlikely) release groups containing over 100 releases will be read correctly

This commit is contained in:
Patrick Speiser
2012-09-09 07:02:59 +02:00
parent fe8220a000
commit ea9f896310

View File

@@ -368,19 +368,26 @@ def getRelease(releaseid, include_artist_info=True):
return release
def get_all_releases(rgid):
results = None
results = []
q, sleepytime = startmb()
try:
results = musicbrainzngs.browse_releases(release_group=rgid,includes=['artist-credits','labels','recordings','release-groups','media'])
limit = 100
newResults = None
while newResults == None or len(newResults) >= limit:
newResults = musicbrainzngs.browse_releases(release_group=rgid,includes=['artist-credits','labels','recordings','release-groups','media'],limit=limit,offset=len(results))
if 'release-list' not in newResults:
break #may want to raise an exception here instead ?
newResults = newResults['release-list']
results += newResults
except WebServiceError, e:
logger.warn('Attempt to retrieve information from MusicBrainz for release group "%s" failed (%s)' % (rgid, str(e)))
time.sleep(5)
return False
if not results or 'release-list' not in results:
if not results or len(results) == 0:
return False
results = results['release-list']
releases = []
for releasedata in results: