[SCM] morituri/master: * morituri/common/musicbrainzngs.py: Get the artist credit for a track/album; Fixes Gorky - Gorky.
js at users.alioth.debian.org
js at users.alioth.debian.org
Sun Oct 19 20:09:38 UTC 2014
The following commit has been merged in the master branch:
commit 61a5d2432f195f51b5aed172a8248a02ac0d4366
Author: Thomas Vander Stichele <thomas (at) apestaart (dot) org>
Date: Sat Jan 21 18:05:26 2012 +0000
* morituri/common/musicbrainzngs.py:
Get the artist credit for a track/album; Fixes Gorky - Gorky.
diff --git a/ChangeLog b/ChangeLog
index 5ac296a..ec62ae5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2012-01-21 Thomas Vander Stichele <thomas at apestaart dot org>
+ * morituri/common/musicbrainzngs.py:
+ Get the artist credit for a track/album; Fixes Gorky - Gorky.
+
+2012-01-21 Thomas Vander Stichele <thomas at apestaart dot org>
+
* morituri/common/checksum.py:
* morituri/common/program.py:
Fix/add logging.
diff --git a/morituri/common/musicbrainzngs.py b/morituri/common/musicbrainzngs.py
index e596548..783ce06 100644
--- a/morituri/common/musicbrainzngs.py
+++ b/morituri/common/musicbrainzngs.py
@@ -105,7 +105,11 @@ def _getMetadata(release, discid):
log.warning('musicbrainzngs', 'artist-credit more than 1: %r',
release['artist-credit'])
- artist = release['artist-credit'][0]['artist']
+ credit = release['artist-credit']
+
+ artist = credit[0]['artist']
+ albumArtistName = credit[0].get(
+ 'name', credit[0]['artist'].get('name', None))
# FIXME: is there a better way to check for VA
metadata.various = False
@@ -114,7 +118,7 @@ def _getMetadata(release, discid):
isSingleArtist = not metadata.various
# getUniqueName gets disambiguating names like Muse (UK rock band)
- metadata.artist = artist['name']
+ metadata.artist = albumArtistName
metadata.sortName = artist['sort-name']
# FIXME: is format str ?
if not release.has_key('date'):
@@ -146,20 +150,25 @@ def _getMetadata(release, discid):
metadata.title = title
for t in medium['track-list']:
track = TrackMetadata()
+ if len(t['recording']['artist-credit']) > 1:
+ # FIXME: do something sensible for multiple artists
+ log.warning('musicbrainzngs', 'artist-credit more than 1: %r',
+ t['recording']['artist-credit'])
+
+
+ credit = t['recording']['artist-credit']
+ trackArtistName = credit[0].get(
+ 'name', credit[0]['artist'].get('name', None))
- if isSingleArtist or not t['recording'].has_key('artist-credit'):
+ if not artist:
track.artist = metadata.artist
track.sortName = metadata.sortName
track.mbidArtist = metadata.mbidArtist
else:
# various artists discs can have tracks with no artist
- if len(t['recording']['artist-credit']) > 1:
- log.warning('musicbrainzngs', 'artist-credit more than 1: %r',
- t['recording']['artist-credit'])
- artist = t['recording']['artist-credit'][0]['artist']
- track.artist = artist and artist['name'] or metadata.artist.name
- track.sortName = artist and artist['sort-name'] or metadata.artist.sortName
- track.mbidArtist = artist and artist['id'] or metadata.artist.mbid
+ track.artist = trackArtistName
+ track.sortName = artist['sort-name']
+ track.mbidArtist = artist['id']
track.title = t['recording']['title']
track.mbid = t['recording']['id']
--
morituri packaging
More information about the pkg-multimedia-commits
mailing list