lib/nanoc/data_sources/deprecated/last_fm.rb in nanoc-3.6.7 vs lib/nanoc/data_sources/deprecated/last_fm.rb in nanoc-3.6.8
- old
+ new
@@ -9,44 +9,46 @@
@items ||= begin
require 'json'
require 'uri'
# Check configuration
- if self.config[:username].nil?
- raise RuntimeError, "LastFM data source requires a username in the configuration"
+ if config[:username].nil?
+ raise 'LastFM data source requires a username in the configuration'
end
- if self.config[:api_key].nil?
- raise RuntimeError, "LastFM data source requires an API key in the configuration"
+ if config[:api_key].nil?
+ raise 'LastFM data source requires an API key in the configuration'
end
# Get data
@http_client ||= Nanoc::Extra::CHiCk::Client.new
- status, headers, data = *@http_client.get(
+ _status, _headers, data = *@http_client.get(
'http://ws.audioscrobbler.com/2.0/' +
'?method=user.getRecentTracks' +
'&format=json' +
- '&user=' + URI.escape(self.config[:username]) +
- '&api_key=' + URI.escape(self.config[:api_key])
+ '&user=' + URI.escape(config[:username]) +
+ '&api_key=' + URI.escape(config[:api_key])
)
# Parse as JSON
parsed_data = JSON.parse(data)
raw_items = parsed_data['recenttracks']['track']
# Convert to items
raw_items.enum_with_index.map do |raw_item, i|
# Get artist data
- artist_status, artist_headers, artist_data = *@http_client.get(
+ _artist_status, _artist_headers, artist_data = *@http_client.get(
'http://ws.audioscrobbler.com/2.0/' +
'?method=artist.getInfo' +
'&format=json' +
(
- raw_item['artist']['mbid'].empty? ?
- '&artist=' + URI.escape(raw_item['artist']['#text']) :
- '&mbid=' + URI.escape(raw_item['artist']['mbid'])
+ if raw_item['artist']['mbid'].empty?
+ '&artist=' + URI.escape(raw_item['artist']['#text'])
+ else
+ '&mbid=' + URI.escape(raw_item['artist']['mbid'])
+ end
) +
- '&api_key=' + URI.escape(self.config[:api_key])
+ '&api_key=' + URI.escape(config[:api_key])
)
# Parse as JSON
parsed_artist_data = JSON.parse(artist_data)
raw_artist_info = parsed_artist_data['artist']
@@ -57,13 +59,13 @@
# Handle track dates
if raw_item['@attr'] && raw_item['@attr']['nowplaying'] == 'true'
track_played_at = Time.now
now_playing = true
else
- played_at = Time.parse(raw_item['date']['#text'])
+ track_played_at = Time.parse(raw_item['date']['#text'])
now_playing = false
end
-
+
attributes = {
:name => raw_item['name'],
:artist => {
:name => raw_artist_info['name'],
:url => raw_artist_info['url']