Merge pull request #1219 from fatg3erman/fix/1218-last-modified-for-mpd
Fix #1218
This commit is contained in:
commit
1d77bc74e2
@ -1,5 +1,6 @@
|
|||||||
from __future__ import absolute_import, unicode_literals
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
|
import datetime
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from mopidy.models import TlTrack
|
from mopidy.models import TlTrack
|
||||||
@ -89,6 +90,11 @@ def track_to_mpd_format(track, position=None, stream_title=None):
|
|||||||
if track.disc_no:
|
if track.disc_no:
|
||||||
result.append(('Disc', track.disc_no))
|
result.append(('Disc', track.disc_no))
|
||||||
|
|
||||||
|
if track.last_modified:
|
||||||
|
datestring = datetime.datetime.utcfromtimestamp(
|
||||||
|
track.last_modified // 1000).isoformat()
|
||||||
|
result.append(('Last-Modified', datestring + 'Z'))
|
||||||
|
|
||||||
if track.musicbrainz_id is not None:
|
if track.musicbrainz_id is not None:
|
||||||
result.append(('MUSICBRAINZ_TRACKID', track.musicbrainz_id))
|
result.append(('MUSICBRAINZ_TRACKID', track.musicbrainz_id))
|
||||||
return result
|
return result
|
||||||
|
|||||||
@ -79,6 +79,43 @@ class TrackMpdFormatTest(unittest.TestCase):
|
|||||||
self.assertNotIn(('Comment', 'a comment'), result)
|
self.assertNotIn(('Comment', 'a comment'), result)
|
||||||
self.assertEqual(len(result), 14)
|
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-16T17:18:19Z'), result)
|
||||||
|
self.assertNotIn(('Comment', 'a comment'), result)
|
||||||
|
self.assertEqual(len(result), 13)
|
||||||
|
|
||||||
|
def test_track_to_mpd_format_with_last_modified_of_zero(self):
|
||||||
|
track = self.track.replace(last_modified=0)
|
||||||
|
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.assertNotIn(('Comment', 'a comment'), result)
|
||||||
|
self.assertEqual(len(result), 12)
|
||||||
|
|
||||||
def test_track_to_mpd_format_musicbrainz_trackid(self):
|
def test_track_to_mpd_format_musicbrainz_trackid(self):
|
||||||
track = self.track.replace(musicbrainz_id='foo')
|
track = self.track.replace(musicbrainz_id='foo')
|
||||||
result = translator.track_to_mpd_format(track)
|
result = translator.track_to_mpd_format(track)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user