lib/firstfm/geo.rb in firstfm-0.2.3 vs lib/firstfm/geo.rb in firstfm-0.3.0

- old
+ new

@@ -21,8 +21,68 @@ pager.total_entries = response['lfm']['events']['total'].to_i end end + def self.get_top_artists(params = {}) + country = params[:country] + page = params[:page] || 1 + limit = params[:limit] || 50 + + response = get("/2.0/", {:query => { + :method => 'geo.gettopartists', + :country => country, + :page => page, + :limit => limit, + :api_key => Firstfm::CONFIG['api_key'] + }}) + + artists_array = (response and response['lfm'] and response['lfm']['topartists'] and response['lfm']['topartists']['artist']) || [] + artists = Artist.init_from_array(artists_array) + WillPaginate::Collection.create(page, limit) do |pager| + pager.replace artists + pager.total_entries = response['lfm']['topartists']['total'].to_i rescue 0 + end + end + + def self.get_metro_artist_chart(params = {}) + get_generic_artist_chart 'geo.getmetroartistchart', params + end + + def self.get_metro_hype_artist_chart(params = {}) + get_generic_artist_chart 'geo.getmetrohypeartistchart', params + end + + def self.get_metro_unique_artist_chart(params = {}) + get_generic_artist_chart 'geo.getmetrouniqueartistchart', params + end + + def self.get_generic_artist_chart(method, params = {}) + metro = params[:metro] + country = params[:country] + start_timestamp = params[:start] + end_timestamp = params[:end] + page = params[:page] || 1 + limit = params[:limit] || 50 + + response = get("/2.0/", {:query => { + :method => method, + :country => country, + :metro => metro, + :start => start_timestamp, + :end => end_timestamp, + :page => page, + :limit => limit, + :api_key => Firstfm::CONFIG['api_key'] + }}) + + artists_array = (response and response['lfm'] and response['lfm']['topartists'] and response['lfm']['topartists']['artist']) || [] + artists = Artist.init_from_array(artists_array) + WillPaginate::Collection.create(page, limit) do |pager| + pager.replace artists + pager.total_entries = response['lfm']['topartists']['total'].to_i rescue 0 + end + end + end end \ No newline at end of file