Output the last_modified timestamp from mopidy's track model to mpd clients
in the same format as mpd uses - yyyy-mm-ddTHH:MM:SS

Outputs nothing for Last-Modified if last_modified is None
This commit is contained in:
Mark Greenwood 2015-07-12 21:39:27 +01:00
parent a99e161aab
commit 5c6ab0846e
2 changed files with 26 additions and 1 deletions

View File

@ -1,5 +1,6 @@
from __future__ import absolute_import, unicode_literals
import datetime
import re
from mopidy.models import TlTrack
@ -86,6 +87,11 @@ def track_to_mpd_format(track, position=None, stream_title=None):
if track.disc_no:
result.append(('Disc', track.disc_no))
if track.last_modified is not None:
datestring = datetime.datetime.fromtimestamp(
track.last_modified // 1000).strftime('%Y-%m-%dT%H:%M:%S%Z')
result.append(('Last-Modified', datestring))
if track.musicbrainz_id is not None:
result.append(('MUSICBRAINZ_TRACKID', track.musicbrainz_id))
return result

View File

@ -22,7 +22,7 @@ class TrackMpdFormatTest(unittest.TestCase):
date='1977-01-01',
disc_no=1,
comment='a comment',
length=137000,
length=137000
)
def setUp(self): # noqa: N802
@ -79,6 +79,25 @@ class TrackMpdFormatTest(unittest.TestCase):
self.assertNotIn(('Comment', 'a comment'), result)
self.assertEqual(len(result), 14)
def test_track_to_mpd_format_with_last_modified(self):
track = self.track.replace(last_modified=995303899000)
result = translator.track_to_mpd_format(track)
self.assertIn(('file', 'a uri'), result)
self.assertIn(('Time', 137), result)
self.assertIn(('Artist', 'an artist'), result)
self.assertIn(('Title', 'a name'), result)
self.assertIn(('Album', 'an album'), result)
self.assertIn(('AlbumArtist', 'an other artist'), result)
self.assertIn(('Composer', 'a composer'), result)
self.assertIn(('Performer', 'a performer'), result)
self.assertIn(('Genre', 'a genre'), result)
self.assertIn(('Track', '7/13'), result)
self.assertIn(('Date', '1977-01-01'), result)
self.assertIn(('Disc', 1), result)
self.assertIn(('Last-Modified', '2001-07-16T18:18:19'), result)
self.assertNotIn(('Comment', 'a comment'), result)
self.assertEqual(len(result), 13)
def test_track_to_mpd_format_musicbrainz_trackid(self):
track = self.track.replace(musicbrainz_id='foo')
result = translator.track_to_mpd_format(track)