Merge 9f29a437f0
into 404f48be1e
This commit is contained in:
commit
b8e24fce9c
|
@ -404,6 +404,32 @@ class _Network(object):
|
||||||
|
|
||||||
return seq
|
return seq
|
||||||
|
|
||||||
|
def get_top_tracks_by_tag(self, tag, limit=None, cacheable=True):
|
||||||
|
"""Returns the top tracks by tag as a sequence of TopItem objects.
|
||||||
|
Parameters:
|
||||||
|
tag (Required) : A country name, as defined by the ISO 3166-1
|
||||||
|
limit (Optional) : The number of results to fetch per page.Defaults to 50.
|
||||||
|
"""
|
||||||
|
|
||||||
|
params = {"tag":tag}
|
||||||
|
|
||||||
|
if limit:
|
||||||
|
params["limit"] = limit
|
||||||
|
|
||||||
|
doc = _Request(self,"tag.getTopTracks",params).execute(cacheable)
|
||||||
|
seq = []
|
||||||
|
|
||||||
|
for node in doc.getElementsByTagName("track"):
|
||||||
|
title = _extract(node,"name")
|
||||||
|
artist = _extract(node,"name",1)
|
||||||
|
track = Track(artist,title,self)
|
||||||
|
weight = _number(_extract(node, "playcount"))
|
||||||
|
|
||||||
|
seq.append(TopItem(track,weight))
|
||||||
|
|
||||||
|
return seq
|
||||||
|
|
||||||
|
|
||||||
def get_geo_events(
|
def get_geo_events(
|
||||||
self, longitude=None, latitude=None, location=None, distance=None,
|
self, longitude=None, latitude=None, location=None, distance=None,
|
||||||
tag=None, festivalsonly=None, limit=None, cacheable=True):
|
tag=None, festivalsonly=None, limit=None, cacheable=True):
|
||||||
|
|
|
@ -985,6 +985,17 @@ class TestPyLast(unittest.TestCase):
|
||||||
self.assertIsInstance(tracks[0], pylast.TopItem)
|
self.assertIsInstance(tracks[0], pylast.TopItem)
|
||||||
self.assertIsInstance(tracks[0].item, pylast.Track)
|
self.assertIsInstance(tracks[0].item, pylast.Track)
|
||||||
|
|
||||||
|
def test_tag_get_top_tracks(self):
|
||||||
|
# Arrange
|
||||||
|
# Act
|
||||||
|
tags = self.network.get_top_tracks_by_tag(
|
||||||
|
tag="happy", limit=1)
|
||||||
|
|
||||||
|
# Assert
|
||||||
|
self.assertEqual(len(tags), 1)
|
||||||
|
self.assertIsInstance(tags[0], pylast.TopItem)
|
||||||
|
self.assertIsInstance(tags[0].item, pylast.Track)
|
||||||
|
|
||||||
def test_metro_class(self):
|
def test_metro_class(self):
|
||||||
# Arrange
|
# Arrange
|
||||||
# Act
|
# Act
|
||||||
|
|
Loading…
Reference in a new issue