Changed findRelease to use the musicbrainzngs library, identical output.

(old musicbrainz 2 library is deprecated and broken)
This commit is contained in:
Patrick Speiser
2012-05-27 09:14:28 +02:00
parent f4e2d1eba0
commit 214d46493c

View File

@@ -120,10 +120,10 @@ def findArtist(name, limit=1):
def findRelease(name, limit=1): def findRelease(name, limit=1):
with mb_lock: with mb_lock:
limit=25
releaselist = [] releaselistngs = []
attempt = 0 attempt = 0
releaseResults = None releaseResultsngs = None
chars = set('!?') chars = set('!?')
if any((c in chars) for c in name): if any((c in chars) for c in name):
@@ -134,31 +134,28 @@ def findRelease(name, limit=1):
while attempt < 5: while attempt < 5:
try: try:
releaseResults = q.getReleases(ws.ReleaseFilter(query=name, limit=limit)) releaseResultsngs = musicbrainzngs.search_releases(query=name,limit=limit)['release-list']
break break
except WebServiceError, e: except WebServiceError, e: #need to update exceptions
logger.warn('Attempt to query MusicBrainz for "%s" failed: %s' % (name, str(e))) logger.warn('Attempt to query MusicBrainz for "%s" failed: %s' % (name, str(e)))
attempt += 1 attempt += 1
time.sleep(10) time.sleep(10)
time.sleep(sleepytime) time.sleep(sleepytime)
if not releaseResults: if not releaseResultsngs:
return False return False
for result in releaseResultsngs:
for result in releaseResults: releaselistngs.append({
'uniquename': unicode(result['artist-credit'][0]['artist']['name']),
releaselist.append({ 'title': unicode(result['title']),
'uniquename': result.release.artist.name, 'id': unicode(result['artist-credit'][0]['artist']['id']),
'title': result.release.title, 'albumid': unicode(result['id']),
'id': u.extractUuid(result.release.artist.id), 'url': unicode("http://musicbrainz.org/artist/" + result['artist-credit'][0]['artist']['id']),#probably needs to be changed
'albumid': u.extractUuid(result.release.id), 'albumurl': unicode("http://musicbrainz.org/release/" + result['id']),#probably needs to be changed
'url': result.release.artist.id, 'score': int(result['ext:score'])
'albumurl': result.release.id, })
'score': result.score return releaselistngs
})
return releaselist
def getArtist(artistid, extrasonly=False): def getArtist(artistid, extrasonly=False):