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