rockstar 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -91,6 +91,32 @@ object, you have to add `:include_info => true` .
91
91
  # To get a list of possible locations use
92
92
  geo.metros("germany").each{|m| p m.name}
93
93
 
94
+ # Retrieve list of top tracks by country
95
+ geo.toptracks('united kingdom', 10).each{|t| p "#{t.name} by #{t.artist}"}
96
+
97
+ # Retrieve list of top artists by country
98
+ geo.topartists('united kingdom', 10).each{|a| p "artist #{a.name} with #{a.listenercount} listeners"}
99
+
100
+
101
+ ## Library
102
+
103
+ # Get artists and albums for user
104
+ library = Rockstar::Library.new
105
+
106
+ puts 'Artists'
107
+ library.artists(false, :user => 'jnunemaker').each { |a| puts a.name }
108
+
109
+ puts 'Albums'
110
+ library.albums(false, :user => 'jnunemaker').each { |a| puts a.name }
111
+
112
+ # Get it with Rockstar::User
113
+ user = Rockstar::User.new('jnunemaker')
114
+
115
+ puts 'Artists'
116
+ user.artists.each { |a| puts a.name }
117
+
118
+ puts 'Albums'
119
+ user.albums.each { |a| puts a.name }
94
120
 
95
121
  ## Get rights to access the user data for scrobbing, now playing, events etc...
96
122
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.7.1
data/examples/geo.rb CHANGED
@@ -7,3 +7,54 @@ Rockstar.lastfm = YAML.load_file(File.join(File.dirname(__FILE__), 'lastfm.yml')
7
7
  geo = Rockstar::Geo.new
8
8
 
9
9
  geo.events(:location => 'london').each{|e| p "#{e.title} at #{e.venue.name}"}
10
+
11
+
12
+ # Get Top Tracks by country of the last week
13
+ #<toptracks country="Spain">
14
+ # <track rank="1">
15
+ # <name>Violet Hill</name>
16
+ # <playcount>1055</playcount>
17
+ # <mbid/>
18
+ # <url>http://www.last.fm/music/Coldplay/_/Violet+Hill</url>
19
+ # <streamable fulltrack="0">1</streamable>
20
+ # <artist>
21
+ # <name>Coldplay</name>
22
+ # <mbid>cc197bad-dc9c-440d-a5b5-d52ba2e14234</mbid>
23
+ # <url>http://www.last.fm/music/Coldplay</url>
24
+ # </artist>
25
+ # <image size="small">...</image>
26
+ # <image size="medium">...</image>
27
+ # <image size="large">...</image>
28
+ # </track>
29
+ # ...
30
+ #</toptracks>
31
+ geo.toptracks('united kingdom', 10).each{|t| p "#{t.name} by #{t.artist}"}
32
+
33
+
34
+ #Get the most popular artists on Last.fm by country
35
+ #<topartists country="Spain" page="1" perPage="50" totalPages="10" total="500">
36
+ #
37
+ # <artist rank="1">
38
+ # <name>Muse</name>
39
+ # <listeners>1736</listeners>
40
+ # <mbid>1695c115-bf3f-4014-9966-2b0c50179193</mbid>
41
+ # <url>http://www.last.fm/music/Muse</url>
42
+ # <streamable>1</streamable>
43
+ # <image size="small">http://userserve-ak.last.fm/serve/34/416065.jpg</image>
44
+ # <image size="medium">http://userserve-ak.last.fm/serve/64/416065.jpg</image>
45
+ # <image size="large">http://userserve-ak.last.fm/serve/126/416065.jpg</image>
46
+ # <image size="extralarge">http://userserve-ak.last.fm/serve/252/416065.jpg</image>
47
+ # <image size="mega">http://userserve-ak.last.fm/serve/500/416065/Muse.jpg</image>
48
+ # </artist> <artist rank="2">
49
+ # <name>Coldplay</name>
50
+ # <listeners>1497</listeners>
51
+ # <mbid>cc197bad-dc9c-440d-a5b5-d52ba2e14234</mbid>
52
+ # <url>http://www.last.fm/music/Coldplay</url>
53
+ # <streamable>1</streamable>
54
+ # <image size="small">http://userserve-ak.last.fm/serve/34/210303.jpg</image>
55
+ # <image size="medium">http://userserve-ak.last.fm/serve/64/210303.jpg</image>
56
+ # <image size="large">http://userserve-ak.last.fm/serve/126/210303.jpg</image>
57
+ # <image size="extralarge">http://userserve-ak.last.fm/serve/252/210303.jpg</image>
58
+ # <image size="mega">http://userserve-ak.last.fm/serve/500/210303/Coldplay.jpg</image>
59
+ # </artist> <a
60
+ geo.topartists('united kingdom', 10).each{|a| p "artist #{a.name} with #{a.listenercount} listeners"}
data/lib/rockstar/geo.rb CHANGED
@@ -16,5 +16,32 @@ module Rockstar
16
16
  get_instance("geo.getMetros", :metros, :metro, {:country => country}, force)
17
17
  end
18
18
 
19
+
20
+
21
+ # Get a list of the Top Artists for a specified country
22
+ #
23
+ # Country is specified in last.fm API docs as 'A country name, as defined by the ISO 3166-1 country names standard'
24
+ # Not sure of the coverage
25
+ #
26
+ # Also specify limit and page to page through full resultset
27
+ #
28
+ # returns array of Artist instances
29
+ def topartists(country, limit = nil, page = nil, force = false)
30
+ get_instance("geo.getTopArtists", :topartists, :artist, {:country => country, :limit => limit, :page => page}, force)
31
+ end
32
+
33
+ # Get a list of the Top Tracks for a specified country
34
+ #
35
+ # Country is specified in last.fm API docs as 'A country name, as defined by the ISO 3166-1 country names standard'
36
+ # Not sure of the coverage
37
+ #
38
+ # Also specify limit and page to page through full resultset
39
+ #
40
+ # returns array of Track instances
41
+ # TODO: is this the correct object to return? We dont have the full data so is this really best
42
+ def toptracks(country, limit = nil, page = nil, force = false)
43
+ get_instance("geo.getTopTracks", :toptracks, :track, {:country => country, :limit => limit, :page => page}, force)
44
+ end
45
+
19
46
  end
20
47
  end
data/rockstar.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "rockstar"
8
- s.version = "0.7.0"
8
+ s.version = "0.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bodo Tasche"]
12
- s.date = "2012-11-15"
12
+ s.date = "2013-02-19"
13
13
  s.description = "This gem is an updated version of jnunemakers scrobbler gem. Rockstar uses v2.0 of the last.fm api."
14
14
  s.email = "bodo@putpat.tv"
15
15
  s.extra_rdoc_files = [
@@ -65,6 +65,8 @@ Gem::Specification.new do |s|
65
65
  "test/fixtures/xml/artist/gettoptracks_artist_Metallica.xml",
66
66
  "test/fixtures/xml/geo/getevents_location_london.xml",
67
67
  "test/fixtures/xml/geo/getmetros_country_germany.xml",
68
+ "test/fixtures/xml/geo/gettopartists_country_spain_limit_50_page_.xml",
69
+ "test/fixtures/xml/geo/gettoptracks_country_spain_limit_50_page_.xml",
68
70
  "test/fixtures/xml/library/getalbums_user_jnunemaker.xml",
69
71
  "test/fixtures/xml/library/getartists_user_jnunemaker.xml",
70
72
  "test/fixtures/xml/tag/gettopalbums_tag_rock.xml",