Merge pull request #1230 from fatg3erman/feature/mpd-protocol-extensions

mpd: Add additional metadata fields for album URIs and image URIs
This commit is contained in:
Thomas Adamcik 2015-07-27 22:28:22 +02:00
commit 2faf6689c1
4 changed files with 16 additions and 2 deletions

View File

@ -116,6 +116,9 @@ MPD frontend
- Exclude empty tags fields from metadata output. (Fixes: :issue:`1045`, PR:
:issue:`1235`)
- Implement protocol extensions to output Album URIs and Album Images when
outputting track data to clients. (PR: :issue:`1230`)
Stream backend
--------------

View File

@ -19,4 +19,6 @@ TAGTYPE_LIST = [
'MUSICBRAINZ_ALBUMID',
'MUSICBRAINZ_ALBUMARTISTID',
'MUSICBRAINZ_TRACKID',
'X-AlbumUri',
'X-AlbumImage',
]

View File

@ -97,6 +97,12 @@ def track_to_mpd_format(track, position=None, stream_title=None):
if track.musicbrainz_id is not None:
result.append(('MUSICBRAINZ_TRACKID', track.musicbrainz_id))
if track.album and track.album.uri:
result.append(('X-AlbumUri', track.album.uri))
if track.album and track.album.images:
images = ';'.join(i for i in track.album.images if i is not '')
result.append(('X-AlbumImage', images))
result = [element for element in result if _has_value(*element)]
return result

View File

@ -14,7 +14,8 @@ class TrackMpdFormatTest(unittest.TestCase):
name='a name',
album=Album(
name='an album', num_tracks=13,
artists=[Artist(name='an other artist')]),
artists=[Artist(name='an other artist')],
uri='urischeme:album:12345', images=['image1']),
track_no=7,
composers=[Artist(name='a composer')],
performers=[Artist(name='a performer')],
@ -76,8 +77,10 @@ class TrackMpdFormatTest(unittest.TestCase):
self.assertIn(('Disc', 1), result)
self.assertIn(('Pos', 9), result)
self.assertIn(('Id', 122), result)
self.assertIn(('X-AlbumUri', 'urischeme:album:12345'), result)
self.assertIn(('X-AlbumImage', 'image1'), result)
self.assertNotIn(('Comment', 'a comment'), result)
self.assertEqual(len(result), 14)
self.assertEqual(len(result), 16)
def test_track_to_mpd_format_with_last_modified(self):
track = self.track.replace(last_modified=995303899000)