From d0c255f59489dcf329953e3856bed49b79895671 Mon Sep 17 00:00:00 2001 From: Mark Greenwood Date: Wed, 8 Jul 2015 22:06:19 +0100 Subject: [PATCH 1/2] mpd:Fix swapped Name and Title fields for streams Fixes issue#1212 When stream_title is set: use stream_title for mpd's Title field, and use track.name (if set) for mpd's Name field When stream_title is not set: use track.name for mpd's Title field. Do not output Name field. --- mopidy/mpd/translator.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mopidy/mpd/translator.py b/mopidy/mpd/translator.py index 025ccdc9..04abc682 100644 --- a/mopidy/mpd/translator.py +++ b/mopidy/mpd/translator.py @@ -38,12 +38,15 @@ def track_to_mpd_format(track, position=None, stream_title=None): # https://github.com/mopidy/mopidy/issues/923#issuecomment-79584110 ('Time', track.length and (track.length // 1000) or 0), ('Artist', concat_multi_values(track.artists, 'name')), - ('Title', track.name or ''), ('Album', track.album and track.album.name or ''), ] - if stream_title: - result.append(('Name', stream_title)) + if stream_title is not None: + result.append(('Title', stream_title)) + if track.name: + result.append(('Name', track.name)) + else: + result.append(('Title', track.name or '')) if track.date: result.append(('Date', track.date)) From 1a967d3d2242847eb96b2ccac38b2438a5f6c173 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Mon, 20 Jul 2015 19:25:39 +0200 Subject: [PATCH 2/2] mpd: Add tests for stream title handling --- tests/mpd/test_translator.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/mpd/test_translator.py b/tests/mpd/test_translator.py index 99c87dad..270f886c 100644 --- a/tests/mpd/test_translator.py +++ b/tests/mpd/test_translator.py @@ -118,6 +118,22 @@ class TrackMpdFormatTest(unittest.TestCase): translated = translator.concat_multi_values(artists, 'musicbrainz_id') self.assertEqual(translated, '') + def test_track_to_mpd_format_with_stream_title(self): + result = translator.track_to_mpd_format(self.track, stream_title='foo') + self.assertIn(('Name', 'a name'), result) + self.assertIn(('Title', 'foo'), result) + + def test_track_to_mpd_format_with_empty_stream_title(self): + result = translator.track_to_mpd_format(self.track, stream_title='') + self.assertIn(('Name', 'a name'), result) + self.assertIn(('Title', ''), result) + + def test_track_to_mpd_format_with_stream_and_no_track_name(self): + track = self.track.replace(name=None) + result = translator.track_to_mpd_format(track, stream_title='foo') + self.assertNotIn(('Name', ''), result) + self.assertIn(('Title', 'foo'), result) + class PlaylistMpdFormatTest(unittest.TestCase):