Skip to content

Instantly share code, notes, and snippets.

@russ
Created August 2, 2013 00:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save russ/6136526 to your computer and use it in GitHub Desktop.
Save russ/6136526 to your computer and use it in GitHub Desktop.
require 'lastfm'
API_KEY = 'XXX'
API_SECRET = 'XXX'
lastfm = Lastfm.new(API_KEY, API_SECRET)
# token = lastfm.auth.get_token
token = '435708b60cde32b6df36b8585fe75725'
# open http://www.last.fm/api/auth/?api_key=XXXX&token=token
lastfm.session = lastfm.auth.get_session(token: token)['key']
fans = lastfm.artist.get_top_fans(artist: 'La Roux').collect do |fan|
fan = lastfm.user.get_info(user: fan['name'])
{ age: fan['age'], gender: fan['gender'] }
end
fans_with_age = fans.select { |f| f[:age].is_a?(String) }
average_age = fans_with_age.inject(0) { |sum, f| f[:age].to_i } / fans_with_age.count
percent_male = fans.select { |f| f[:gender] == 'm' }.count / fans.count
puts fans.inspect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment