mirror of
https://github.com/rembo10/headphones.git
synced 2026-07-21 00:14:02 +01:00
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:
+11
-4
@@ -368,19 +368,26 @@ def getRelease(releaseid, include_artist_info=True):
|
|||||||
|
|
||||||
return release
|
return release
|
||||||
def get_all_releases(rgid):
|
def get_all_releases(rgid):
|
||||||
results = None
|
results = []
|
||||||
q, sleepytime = startmb()
|
q, sleepytime = startmb()
|
||||||
try:
|
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:
|
except WebServiceError, e:
|
||||||
logger.warn('Attempt to retrieve information from MusicBrainz for release group "%s" failed (%s)' % (rgid, str(e)))
|
logger.warn('Attempt to retrieve information from MusicBrainz for release group "%s" failed (%s)' % (rgid, str(e)))
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if not results or 'release-list' not in results:
|
if not results or len(results) == 0:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
results = results['release-list']
|
|
||||||
|
|
||||||
releases = []
|
releases = []
|
||||||
for releasedata in results:
|
for releasedata in results:
|
||||||
|
|||||||
Reference in New Issue
Block a user