add getIds and use it to set correct ids

This commit is contained in:
Thomas Vander Stichele
2013-07-30 13:09:56 +02:00
parent a8ef4a54c4
commit ead648feef
2 changed files with 13 additions and 6 deletions

View File

@@ -114,14 +114,17 @@ class _Credit(list):
or track.
"""
def joiner(self, attributeGetter):
def joiner(self, attributeGetter, joinString=None):
res = []
for item in self:
if isinstance(item, dict):
res.append(attributeGetter(item))
else:
res.append(item)
if not joinString:
res.append(item)
else:
res.append(joinString)
return "".join(res)
@@ -132,6 +135,10 @@ class _Credit(list):
def getName(self):
return self.joiner(lambda i: i.get('artist').get('name', None))
def getIds(self):
return self.joiner(lambda i: i.get('artist').get('id', None),
joinString=";")
def _getMetadata(releaseShort, release, discid):
"""
@@ -165,7 +172,7 @@ def _getMetadata(releaseShort, release, discid):
albumArtistName = credit.getName()
# FIXME: is there a better way to check for VA
# FIXME: is there a better way to check for VA ?
discMD.various = False
if discArtist['id'] == VA_ID:
discMD.various = True
@@ -180,7 +187,7 @@ def _getMetadata(releaseShort, release, discid):
discMD.release = release['date']
discMD.mbid = release['id']
discMD.mbidArtist = discArtist['id']
discMD.mbidArtist = credit.getIds()
discMD.url = 'http://musicbrainz.org/release/' + release['id']
discMD.barcode = release.get('barcode', None)

View File

@@ -65,9 +65,9 @@ class MetadataTestCase(unittest.TestCase):
self.assertEquals(metadata.sortName,
u'Campbell, Isobel & Lanegan, Mark')
self.assertEquals(metadata.release, u'2006-01-30')
# FIXME: this is only Isobel
self.assertEquals(metadata.mbidArtist,
u'd51f3a15-12a2-41a0-acfa-33b5eae71164')
u'd51f3a15-12a2-41a0-acfa-33b5eae71164;'
'a9126556-f555-4920-9617-6e013f8228a7')
self.assertEquals(len(metadata.tracks), 12)