Fix artist name (#156)

* Use artist-credit->name

Use artist-credit->name, if it exists. Otherwise use artist-credit->artist->name.

* Add test case

* Fix for PEP8

* transform comment to docstring

* reject 'recording artist name' in favour of 'release artist name'

* reject 'recording artist name' in favour of 'release artist name'
This commit is contained in:
gorgobacka
2017-09-14 22:25:28 +02:00
committed by JoeLametta
parent 158fab278f
commit 7ae27de32b
4 changed files with 85 additions and 2 deletions

View File

@@ -135,7 +135,8 @@ class _Credit(list):
return self.joiner(lambda i: i.get('artist').get('sort-name', None))
def getName(self):
return self.joiner(lambda i: i.get('artist').get('name', None))
return self.joiner(lambda i: i.get('name',
i.get('artist').get('name', None)))
def getIds(self):
return self.joiner(lambda i: i.get('artist').get('id', None),
@@ -214,7 +215,9 @@ def _getMetadata(releaseShort, release, discid, country=None):
discMD.title = title
for t in medium['track-list']:
track = TrackMetadata()
trackCredit = _Credit(t['recording']['artist-credit'])
trackCredit = _Credit(
t.get('artist-credit', t['recording']['artist-credit']
))
if len(trackCredit) > 1:
logger.debug('artist-credit more than 1: %r',
trackCredit)