From 8a4dc1033b9d648b89fee951be483738c0f7dbfa Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 30 Oct 2010 20:38:33 +0200 Subject: [PATCH] Add album-artist support to translator --- mopidy/scanner.py | 7 +++++++ tests/scanner_test.py | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/mopidy/scanner.py b/mopidy/scanner.py index ccdab24b..c32115f7 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -14,6 +14,7 @@ from mopidy.utils.path import path_to_uri, find_files from mopidy.models import Track, Artist, Album def translator(data): + albumartist_kwargs = {} album_kwargs = {} artist_kwargs = {} track_kwargs = {} @@ -38,6 +39,12 @@ def translator(data): if 'track-number' in data: track_kwargs['track_no'] = data['track-number'] + if 'album-artist' in data: + albumartist_kwargs['name'] = data['album-artist'] + + if albumartist_kwargs: + album_kwargs['artists'] = [Artist(**albumartist_kwargs)] + track_kwargs['uri'] = data['uri'] track_kwargs['length'] = data['duration'] track_kwargs['album'] = Album(**album_kwargs) diff --git a/tests/scanner_test.py b/tests/scanner_test.py index f0f22ecc..141f2ceb 100644 --- a/tests/scanner_test.py +++ b/tests/scanner_test.py @@ -19,6 +19,7 @@ class TranslatorTest(unittest.TestCase): 'album': u'albumname', 'track-number': 1, 'artist': u'name', + 'album-artist': 'albumartistname', 'title': u'trackname', 'track-count': 2, 'date': FakeGstDate(2006, 1, 1,), @@ -35,6 +36,10 @@ class TranslatorTest(unittest.TestCase): 'name': 'name', } + self.albumartist = { + 'name': 'albumartistname', + } + self.track = { 'uri': 'uri', 'name': 'trackname', @@ -44,6 +49,8 @@ class TranslatorTest(unittest.TestCase): } def build_track(self): + if self.albumartist: + self.album['artists'] = [Artist(**self.albumartist)] self.track['album'] = Album(**self.album) self.track['artists'] = [Artist(**self.artist)] return Track(**self.track) @@ -81,6 +88,11 @@ class TranslatorTest(unittest.TestCase): del self.artist['name'] self.check() + def test_missing_album_artist(self): + del self.data['album-artist'] + del self.albumartist['name'] + self.check() + def test_missing_date(self): del self.data['date'] del self.track['date']