Add album for a user's recent tracks and artist tracks, closes #69

This commit is contained in:
hugovk 2014-03-03 13:16:23 +02:00
parent 896e248909
commit a38f3b485c
2 changed files with 27 additions and 3 deletions

View file

@ -977,7 +977,7 @@ class SessionKeyGenerator(object):
TopItem = collections.namedtuple("TopItem", ["item", "weight"])
SimilarItem = collections.namedtuple("SimilarItem", ["item", "match"])
LibraryItem = collections.namedtuple("LibraryItem", ["item", "playcount", "tagcount"])
PlayedTrack = collections.namedtuple("PlayedTrack", ["track", "playback_date", "timestamp"])
PlayedTrack = collections.namedtuple("PlayedTrack", ["track", "album", "playback_date", "timestamp"])
LovedTrack = collections.namedtuple("LovedTrack", ["track", "date", "timestamp"])
ImageSizes = collections.namedtuple("ImageSizes", ["original", "large", "largesquare", "medium", "small", "extralarge"])
Image = collections.namedtuple("Image", ["title", "url", "dateadded", "format", "owner", "sizes", "votes"])
@ -2964,9 +2964,10 @@ class User(_BaseObject):
title = _extract(track, "name")
artist = _extract(track, "artist")
date = _extract(track, "date")
album = _extract(track, "album")
timestamp = track.getElementsByTagName("date")[0].getAttribute("uts")
seq.append(PlayedTrack(Track(artist, title, self.network), date, timestamp))
seq.append(PlayedTrack(Track(artist, title, self.network), album, date, timestamp))
return seq
@ -3096,9 +3097,10 @@ class User(_BaseObject):
title = _extract(track, "name")
artist = _extract(track, "artist")
date = _extract(track, "date")
album = _extract(track, "album")
timestamp = track.getElementsByTagName("date")[0].getAttribute("uts")
seq.append(PlayedTrack(Track(artist, title, self.network), date, timestamp))
seq.append(PlayedTrack(Track(artist, title, self.network), album, date, timestamp))
return seq

View file

@ -513,6 +513,28 @@ class TestPyLast(unittest.TestCase):
self.assertNotIsInstance(loved, str)
def test_album_in_recent_tracks(self):
# Arrange
lastfm_user = self.network.get_user(self.username)
# Act
track = lastfm_user.get_recent_tracks(limit = 2)[0] # 2 to ignore now-playing
# Assert
self.assertTrue(hasattr(track, 'album'))
def test_album_in_artist_tracks(self):
# Arrange
lastfm_user = self.network.get_user(self.username)
# Act
track = lastfm_user.get_artist_tracks(artist = "Test Artist")[0]
# Assert
self.assertTrue(hasattr(track, 'album'))
if __name__ == '__main__':
# For quick testing of a single case (eg. test = "test_scrobble")