From 960a3cb2efaa4642cb897398a643b58b1d9d0a19 Mon Sep 17 00:00:00 2001 From: skillachie Date: Sat, 11 Apr 2015 16:46:44 -0400 Subject: [PATCH] adding support for tag.getTopTracks http://www.last.fm/api/show/tag.getTopTracks --- pylast/__init__.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/pylast/__init__.py b/pylast/__init__.py index c0d700b..3360205 100644 --- a/pylast/__init__.py +++ b/pylast/__init__.py @@ -405,7 +405,33 @@ class _Network(object): return seq - def get_geo_events( + 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 + + + get_geo_events( self, longitude=None, latitude=None, location=None, distance=None, tag=None, festivalsonly=None, limit=None, cacheable=True): """ @@ -420,6 +446,7 @@ class _Network(object): distance (Optional) : Find events within a specified radius (in kilometres) tag (Optional) : Specifies a tag to filter by. + pTracks festivalsonly[0|1] (Optional) : Whether only festivals should be returned, or all events. limit (Optional) : The number of results to fetch per page.