ruby_fm 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 40682fbe05f5f78bf908a060226435d1e57124dc
4
+ data.tar.gz: 0ead632d99bb21407c2be44ed86ae3e43b5a279f
5
+ SHA512:
6
+ metadata.gz: 91fb0b52003563d4ed3def9d814fd687de1d59f154ba66cae14300cfd8ea037f8bcc486c75196d990f8f0315215f90f401bb749fdf5ef7e9d1d45e032736a6a4
7
+ data.tar.gz: ed26c2086b00386a6941a5e31db4549b478a7e872e429cdde82917d82f14b2e83a85f66693a60b0b0355eba240357249e527de91adb947505be871fc6e66113f
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .env
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ruby_fm.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Daniel Carter
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # RubyFm
2
+
3
+ Wrapper for using the Last FM API
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ `gem 'ruby_fm'`
10
+
11
+ And then execute:
12
+
13
+ `$ bundle`
14
+
15
+ Or install it yourself as:
16
+
17
+ `$ gem install ruby_fm`
18
+
19
+ ## Usage
20
+
21
+ `artist = LastRubyFm::Artist.search('65daysofstatic').first
22
+ artist.name # '65daysofstatic'
23
+ artist.images # ["http://userserve-ak.last.fm/serve/34/46404977.jpg",
24
+ "http://userserve-ak.last.fm/serve/64/46404977.jpg",
25
+ "http://userserve-ak.last.fm/serve/126/46404977.jpg",
26
+ "http://userserve-ak.last.fm/serve/252/46404977.jpg",
27
+ "http://userserve-ak.last.fm/serve/_/46404977/65daysofstatic+4312266316_916a42bda8.jpg"]
28
+
29
+ album = LastRubyFm::Album.search('Robbers & Cowards')[0]
30
+ album.artist # 'Cold War Kids'
31
+ album.tracks # retrieves a list of LastRubyFm::Track objects for the given album`
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,69 @@
1
+ require 'faraday'
2
+ require 'json'
3
+
4
+ module RubyFm
5
+ class Album
6
+ attr_reader :name, :artist, :id, :url, :images, :streamable, :tracks, :mbid
7
+
8
+ def initialize(attributes, tracks)
9
+ @name = attributes['name']
10
+ @artist = attributes['artist']
11
+ @mbid = attributes['mbid']
12
+ @id = attributes['id']
13
+ @url = attributes['url']
14
+ @streamable = attributes['streamable']
15
+ @images = attributes['image'].map do |image|
16
+ image['#text']
17
+ end
18
+ @tracks = tracks
19
+ end
20
+
21
+ class << self
22
+ def search(phrase)
23
+ res = connection.get('/2.0/', {
24
+ method: 'album.search',
25
+ album: phrase,
26
+ api_key: RubyFm.api_key,
27
+ format: 'json'
28
+ })
29
+ parsed_results = JSON.parse(res.body)
30
+ if parsed_results['results'] && parsed_results['results']['albummatches']
31
+ album_results = [parsed_results['results']['albummatches']['album']].flatten
32
+ album_results.map do |album_attributes|
33
+ tracks = get_tracks(album_attributes['name'],album_attributes['artist'])
34
+ new(album_attributes, tracks)
35
+ end
36
+ else
37
+ []
38
+ end
39
+ end
40
+
41
+ protected
42
+ def get_tracks(name, artist)
43
+ res = connection.get('/2.0/', {
44
+ method: 'album.getInfo',
45
+ album: name,
46
+ artist: artist,
47
+ api_key: RubyFm.api_key,
48
+ format: 'json'
49
+ })
50
+ parsed_results = JSON.parse(res.body)
51
+ if parsed_results['album'] && parsed_results['album']['tracks']['track']
52
+ tracks_results = [parsed_results['album']['tracks']['track']].flatten
53
+ tracks_results.map do |track_attributes|
54
+ Track.new(track_attributes)
55
+ end
56
+ else
57
+ []
58
+ end
59
+ end
60
+
61
+ def connection
62
+ conn ||= Faraday.new(:url => 'http://ws.audioscrobbler.com') do |faraday|
63
+ faraday.request :url_encoded # form-encode POST params
64
+ faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,48 @@
1
+ require 'faraday'
2
+ require 'json'
3
+
4
+ module RubyFm
5
+ class Artist
6
+ attr_reader :name, :listeners, :mbid, :streamable, :url, :images
7
+
8
+ def initialize(attributes)
9
+ @name = attributes['name']
10
+ @listeners = attributes['listeners']
11
+ @mbid = attributes['mbid']
12
+ @streamable = attributes['streamable']
13
+ @url = attributes['url']
14
+ @images = attributes['image'].map do |image|
15
+ image['#text']
16
+ end
17
+ end
18
+
19
+ class << self
20
+ def search(phrase)
21
+ res = connection.get('/2.0/', {
22
+ method: 'artist.search',
23
+ artist: phrase,
24
+ api_key: RubyFm.api_key,
25
+ format: 'json'
26
+ })
27
+ parsed_results = JSON.parse(res.body)
28
+ if parsed_results['results'] && parsed_results['results']['artistmatches']
29
+ artist_results = [parsed_results['results']['artistmatches']['artist']].flatten
30
+ artist_results.map do |artist_attributes|
31
+ new(artist_attributes)
32
+ end
33
+ else
34
+ []
35
+ end
36
+
37
+ end
38
+
39
+ protected
40
+ def connection
41
+ conn ||= Faraday.new(:url => 'http://ws.audioscrobbler.com') do |faraday|
42
+ faraday.request :url_encoded # form-encode POST params
43
+ faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,17 @@
1
+ require 'json'
2
+
3
+ module RubyFm
4
+ class Track
5
+ attr_reader :name, :duration, :mbid, :url, :streamable, :artist, :rank
6
+
7
+ def initialize(attributes)
8
+ @name = attributes['name']
9
+ @duration = attributes['duration']
10
+ @mbid = attributes['mbid']
11
+ @url = attributes['url']
12
+ @streamable = attributes['streamable']
13
+ @artist = attributes['artist']['name']
14
+ @rank = attributes['@attr']['rank']
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,3 @@
1
+ module RubyFm
2
+ VERSION = "0.0.1"
3
+ end
data/lib/ruby_fm.rb ADDED
@@ -0,0 +1,14 @@
1
+ require "ruby_fm/version"
2
+ require "ruby_fm/artist"
3
+ require "ruby_fm/album"
4
+ require "ruby_fm/track"
5
+
6
+ module RubyFm
7
+ def self.api_key=(key)
8
+ @api_key = key
9
+ end
10
+
11
+ def self.api_key
12
+ @api_key
13
+ end
14
+ end
data/ruby_fm.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ruby_fm/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ruby_fm"
8
+ spec.version = RubyFm::VERSION
9
+ spec.authors = ["Daniel Carter"]
10
+ spec.email = ["dnyecarter@gmail.com"]
11
+ spec.description = %q{Wrapper for using the Last FM API}
12
+ spec.summary = %q{Wrapper for using the Last FM API using Faraday, VCS, and RSpec}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "faraday"
22
+ spec.add_dependency "multi_json"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "webmock"
28
+ spec.add_development_dependency "vcr"
29
+ spec.add_development_dependency "pry"
30
+ end
@@ -0,0 +1,107 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://ws.audioscrobbler.com/2.0/?album=Robbers%20%26%20Cowards&api_key=<LASTFM
6
+ API KEY>&format=json&method=album.search
7
+ body:
8
+ encoding: US-ASCII
9
+ string: ''
10
+ headers:
11
+ User-Agent:
12
+ - Faraday v0.9.0
13
+ Accept-Encoding:
14
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
15
+ Accept:
16
+ - '*/*'
17
+ response:
18
+ status:
19
+ code: 200
20
+ message: OK
21
+ headers:
22
+ Server:
23
+ - Apache/2.2.22 (Unix)
24
+ X-Web-Node:
25
+ - www232
26
+ Access-Control-Allow-Origin:
27
+ - '*'
28
+ Access-Control-Allow-Methods:
29
+ - POST, GET, OPTIONS
30
+ Access-Control-Max-Age:
31
+ - '86400'
32
+ Cache-Control:
33
+ - max-age=86400
34
+ Expires:
35
+ - Tue, 21 Jan 2014 23:02:51 GMT
36
+ Content-Type:
37
+ - application/json; charset=utf-8;
38
+ Date:
39
+ - Mon, 20 Jan 2014 23:02:51 GMT
40
+ X-Varnish:
41
+ - '1812768600'
42
+ Age:
43
+ - '0'
44
+ Via:
45
+ - 1.1 varnish
46
+ Connection:
47
+ - close
48
+ X-Cms:
49
+ - '1'
50
+ X-Varnish-Host:
51
+ - varnish3
52
+ body:
53
+ encoding: UTF-8
54
+ string: |
55
+ {"results":{"opensearch:Query":{"#text":"","role":"request","searchTerms":"Robbers & Cowards","startPage":"1"},"opensearch:totalResults":"1","opensearch:startIndex":"0","opensearch:itemsPerPage":"50","albummatches":{"album":{"name":"Robbers & Cowards","artist":"Cold War Kids","id":"3251702","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/Robbers+&+Cowards","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9197957.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9197957.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/9197957.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9197957.jpg","size":"extralarge"}],"streamable":"1","mbid":"1cd89dd6-158f-43c8-8a36-70546defb4a9"}},"@attr":{"for":"Robbers & Cowards"}}}
56
+ http_version:
57
+ recorded_at: Mon, 20 Jan 2014 23:02:51 GMT
58
+ - request:
59
+ method: get
60
+ uri: http://ws.audioscrobbler.com/2.0/?album=Robbers%20%26%20Cowards&api_key=<LASTFM
61
+ API KEY>&artist=Cold%20War%20Kids&format=json&method=album.getInfo
62
+ body:
63
+ encoding: US-ASCII
64
+ string: ''
65
+ headers:
66
+ User-Agent:
67
+ - Faraday v0.9.0
68
+ Accept-Encoding:
69
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
70
+ Accept:
71
+ - '*/*'
72
+ response:
73
+ status:
74
+ code: 200
75
+ message: OK
76
+ headers:
77
+ Date:
78
+ - Mon, 20 Jan 2014 23:02:51 GMT
79
+ Server:
80
+ - Apache/2.2.22 (Unix)
81
+ X-Web-Node:
82
+ - www239
83
+ Access-Control-Allow-Origin:
84
+ - '*'
85
+ Access-Control-Allow-Methods:
86
+ - POST, GET, OPTIONS
87
+ Access-Control-Max-Age:
88
+ - '86400'
89
+ Cache-Control:
90
+ - max-age=86400
91
+ Expires:
92
+ - Tue, 21 Jan 2014 23:02:51 GMT
93
+ Vary:
94
+ - Accept-Encoding
95
+ Content-Length:
96
+ - '1185'
97
+ Connection:
98
+ - close
99
+ Content-Type:
100
+ - application/json; charset=utf-8;
101
+ body:
102
+ encoding: UTF-8
103
+ string: |
104
+ {"album":{"name":"Robbers & Cowards","artist":"Cold War Kids","id":"3251702","mbid":"1cd89dd6-158f-43c8-8a36-70546defb4a9","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/Robbers+&+Cowards","releasedate":" 11 Nov 2008, 00:00","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9197957.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9197957.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/174s\/9197957.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9197957.jpg","size":"extralarge"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/_\/9197957\/Robbers++Cowards+Cold+War+Kids++Robbers++Coward.jpg","size":"mega"}],"listeners":"333892","playcount":"7387537","tracks":{"track":[{"name":"We Used to Vacation","duration":"241","mbid":"82b38cde-d4c0-4d41-b4eb-d230287c8784","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/We+Used+to+Vacation","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"1"}},{"name":"Hang Me Up to Dry","duration":"216","mbid":"0828547a-fea2-4cbb-97d8-c2bf35874d80","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Hang+Me+Up+to+Dry","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"2"}},{"name":"Tell Me in the Morning","duration":"217","mbid":"1280ef5b-d75a-43ce-a9bb-da6fff5deaf5","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Tell+Me+in+the+Morning","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"3"}},{"name":"Hair Down","duration":"220","mbid":"08cb4c8b-652a-4e77-a576-603dda422dd5","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Hair+Down","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"4"}},{"name":"Passing the Hat","duration":"207","mbid":"081245cb-b177-49b1-b69f-e70c408d01f3","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Passing+the+Hat","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"5"}},{"name":"Saint John","duration":"206","mbid":"b700456c-39d4-4ee8-bd5b-5a155139ce0d","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Saint+John","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"6"}},{"name":"Robbers","duration":"218","mbid":"33cc1c64-e62f-4edd-ad2a-d1eca284a128","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Robbers","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"7"}},{"name":"Hospital Beds","duration":"279","mbid":"1fffaed8-2e23-41a4-978f-a71090b445e2","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Hospital+Beds","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"8"}},{"name":"Pregnant","duration":"237","mbid":"9385ef17-c56c-4bb1-b9de-8d76870801de","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Pregnant","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"9"}},{"name":"Red Wine, Success!","duration":"154","mbid":"d73152c8-30c7-47d7-9cd9-3040437a5871","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Red+Wine,+Success!","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"10"}},{"name":"God, Make Up Your Mind","duration":"286","mbid":"26720c8c-b1dc-4472-96d6-1a146be5d439","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/God,+Make+Up+Your+Mind","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"11"}},{"name":"Rubidoux","duration":"662","mbid":"fef06096-ca5f-496e-a976-a40c55fe63cf","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Rubidoux","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"12"}}]},"toptags":{"tag":[{"name":"albums i own","url":"http:\/\/www.last.fm\/tag\/albums%20i%20own"},{"name":"2006","url":"http:\/\/www.last.fm\/tag\/2006"},{"name":"indie","url":"http:\/\/www.last.fm\/tag\/indie"},{"name":"indie rock","url":"http:\/\/www.last.fm\/tag\/indie%20rock"},{"name":"00s","url":"http:\/\/www.last.fm\/tag\/00s"}]}}}
105
+ http_version:
106
+ recorded_at: Mon, 20 Jan 2014 23:02:51 GMT
107
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,169 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://ws.audioscrobbler.com/2.0/?album=Robbers&api_key=<LASTFM API KEY>&format=json&method=album.search
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - Apache/2.2.22 (Unix)
23
+ X-Web-Node:
24
+ - www105
25
+ Access-Control-Allow-Origin:
26
+ - '*'
27
+ Access-Control-Allow-Methods:
28
+ - POST, GET, OPTIONS
29
+ Access-Control-Max-Age:
30
+ - '86400'
31
+ Cache-Control:
32
+ - max-age=86400
33
+ Expires:
34
+ - Tue, 21 Jan 2014 22:27:02 GMT
35
+ Content-Type:
36
+ - application/json; charset=utf-8;
37
+ Content-Length:
38
+ - '3600'
39
+ Accept-Ranges:
40
+ - bytes
41
+ Date:
42
+ - Mon, 20 Jan 2014 22:28:07 GMT
43
+ X-Varnish:
44
+ - 1987666032 1987646162
45
+ Age:
46
+ - '64'
47
+ Via:
48
+ - 1.1 varnish
49
+ Connection:
50
+ - close
51
+ X-Cms:
52
+ - '1'
53
+ X-Varnish-Host:
54
+ - varnish4
55
+ body:
56
+ encoding: UTF-8
57
+ string: |
58
+ {"results":{"opensearch:Query":{"#text":"","role":"request","searchTerms":"Robbers","startPage":"1"},"opensearch:totalResults":"103","opensearch:startIndex":"0","opensearch:itemsPerPage":"50","albummatches":{"album":[{"name":"Robbers And Cowards","artist":"Cold War Kids","id":"3237006","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/Robbers+And+Cowards","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/11177203.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/11177203.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/11177203.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/11177203.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Robbers & Cowards","artist":"Cold War Kids","id":"3251702","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/Robbers+&+Cowards","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9197957.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9197957.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/9197957.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9197957.jpg","size":"extralarge"}],"streamable":"1","mbid":"1cd89dd6-158f-43c8-8a36-70546defb4a9"},{"name":"Grand Animals","artist":"Robbers on High Street","id":"3354671","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/Grand+Animals","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/90657307.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/90657307.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/90657307.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/90657307.jpg","size":"extralarge"}],"streamable":"1","mbid":"8dfb1bdd-3038-45f9-9933-4e280eb39d10"},{"name":"Tree City","artist":"Robbers on High Street","id":"2032371","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/Tree+City","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/81538667.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/81538667.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/81538667.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/81538667.jpg","size":"extralarge"}],"streamable":"1","mbid":"9b5ef1f1-fb93-467f-a390-b5e81d49b574"},{"name":"Murderers & Robbers","artist":"Project Pat","id":"4193234","url":"http:\/\/www.last.fm\/music\/Project+Pat\/Murderers+&+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/69080106.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/69080106.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/69080106.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/69080106.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Fine Lines","artist":"Robbers on High Street","id":"2154676","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/Fine+Lines","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/81644161.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/81644161.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/81644161.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/81644161.jpg","size":"extralarge"}],"streamable":"1","mbid":"397a7312-814b-48c3-b5c8-459cc1a9d384"},{"name":"Little Robbers","artist":"The Motels","id":"2084012","url":"http:\/\/www.last.fm\/music\/The+Motels\/Little+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/84981083.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/84981083.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/84981083.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/84981083.jpg","size":"extralarge"}],"streamable":"0","mbid":"3a999f04-eafa-43da-a858-7b0e53bf4ba6"},{"name":"Hey There Golden Hair","artist":"Robbers on High Street","id":"252875291","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/Hey+There+Golden+Hair","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/68886122.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/68886122.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/68886122.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/68886122.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops And Robbers","artist":"The Hoosiers","id":"3772520","url":"http:\/\/www.last.fm\/music\/The+Hoosiers\/Cops+And+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/90866269.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/90866269.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/90866269.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/90866269.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Robbers Roost","artist":"Head for the Hills","id":"3623560","url":"http:\/\/www.last.fm\/music\/Head+for+the+Hills\/Robbers+Roost","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9968913.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9968913.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/9968913.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9968913.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"The Fatalist And Friends","artist":"Robbers on High Street","id":"3262319","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/The+Fatalist+And+Friends","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/48822685.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/48822685.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/48822685.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/48822685.jpg","size":"extralarge"}],"streamable":"1","mbid":"92ccac2e-7414-47db-9e3b-da37c1f7bfbc"},{"name":"Murderers and Robbers","artist":"Project Pat","id":"2218604","url":"http:\/\/www.last.fm\/music\/Project+Pat\/Murderers+and+Robbers","image":[{"#text":"http:\/\/images.amazon.com\/images\/P\/B00004U5DC.01.MZZZZZZZ.jpg","size":"small"},{"#text":"http:\/\/images.amazon.com\/images\/P\/B00004U5DC.01.MZZZZZZZ.jpg","size":"medium"},{"#text":"http:\/\/images.amazon.com\/images\/P\/B00004U5DC.01.MZZZZZZZ.jpg","size":"large"},{"#text":"http:\/\/images.amazon.com\/images\/P\/B00004U5DC.01.MZZZZZZZ.jpg","size":"extralarge"}],"streamable":"1","mbid":"b3338e3c-0a6c-4463-a3ee-72ba35b93ee9"},{"name":"8-Bit Heroes","artist":"The New York Robbers","id":"48280526","url":"http:\/\/www.last.fm\/music\/The+New+York+Robbers\/8-Bit+Heroes","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/22807861.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/22807861.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/22807861.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/22807861.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Seasons Greetings","artist":"Robbers on High Street","id":"3721748","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/Seasons+Greetings","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"44 Robbers","artist":"Laika","id":"2779","url":"http:\/\/www.last.fm\/music\/Laika\/44+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/8591607.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/8591607.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/8591607.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/8591607.jpg","size":"extralarge"}],"streamable":"0","mbid":"82682854-c14a-46ba-b2b4-11d08f23a302"},{"name":"Rocks and Cranes","artist":"Brixton Robbers","id":"80348052","url":"http:\/\/www.last.fm\/music\/Brixton+Robbers\/Rocks+and+Cranes","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/47167779.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/47167779.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/47167779.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/47167779.jpg","size":"extralarge"}],"streamable":"1","mbid":"a0c1b000-6222-4377-b449-2926f92fc852"},{"name":"Little Robbers","artist":"Motels","id":"2644261","url":"http:\/\/www.last.fm\/music\/+noredirect\/Motels\/Little+Robbers","image":[{"#text":"http:\/\/images.amazon.com\/images\/P\/B000007OJQ.01._SCMZZZZZZZ_.jpg","size":"small"},{"#text":"http:\/\/images.amazon.com\/images\/P\/B000007OJQ.01._SCMZZZZZZZ_.jpg","size":"medium"},{"#text":"http:\/\/images.amazon.com\/images\/P\/B000007OJQ.01._SCMZZZZZZZ_.jpg","size":"large"},{"#text":"http:\/\/images.amazon.com\/images\/P\/B000007OJQ.01._SCMZZZZZZZ_.jpg","size":"extralarge"}],"streamable":"0","mbid":""},{"name":"Anything Could Happen","artist":"Robbers on High Street","id":"279206912","url":"http:\/\/www.last.fm\/music\/Robbers+on+High+Street\/Anything+Could+Happen","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/76799090.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/76799090.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/76799090.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/76799090.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Hive Robbers","artist":"Hive Robbers","id":"283327963","url":"http:\/\/www.last.fm\/music\/Hive+Robbers\/Hive+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/70484790.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/70484790.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/70484790.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/70484790.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"and robbers","artist":"The Colins of Paradise","id":"3430672","url":"http:\/\/www.last.fm\/music\/The+Colins+of+Paradise\/and+robbers","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Grave Robbers","artist":"Mother Upduff","id":"338048433","url":"http:\/\/www.last.fm\/music\/Mother+Upduff\/Grave+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/94034429.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/94034429.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/94034429.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/94034429.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"24 Robbers","artist":"Dean Mora & Rusty's Rhythm Rascals","id":"308109765","url":"http:\/\/www.last.fm\/music\/Dean+Mora+&+Rusty%27s+Rhythm+Rascals\/24+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/79144939.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/79144939.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/79144939.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/79144939.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Grave Robbers","artist":"Chris Avgoustis","id":"248132592","url":"http:\/\/www.last.fm\/music\/Chris+Avgoustis\/Grave+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/52605787.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/52605787.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/52605787.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/52605787.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"bank robbers","artist":"bankrobberbeats","id":"243678559","url":"http:\/\/www.last.fm\/music\/bankrobberbeats\/bank+robbers","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops and Robbers","artist":"Bean","id":"315077766","url":"http:\/\/www.last.fm\/music\/Bean\/Cops+and+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/82206357.png","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/82206357.png","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/82206357.png","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/82206357.png","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Tomorrow Belongs To Me","artist":"The Bank Robbers","id":"2592817","url":"http:\/\/www.last.fm\/music\/The+Bank+Robbers\/Tomorrow+Belongs+To+Me","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/8845667.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/8845667.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/8845667.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/8845667.jpg","size":"extralarge"}],"streamable":"0","mbid":"4d25d9a4-2e28-43e9-b510-9a699c5f2072"},{"name":"Snobs & Robbers","artist":"Niles Philips","id":"290599258","url":"http:\/\/www.last.fm\/music\/Niles+Philips\/Snobs+&+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/71193708.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/71193708.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/71193708.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/71193708.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops and Robbers","artist":"The Rolling Stones","id":"2250516","url":"http:\/\/www.last.fm\/music\/The+Rolling+Stones\/Cops+and+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9717589.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9717589.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/9717589.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9717589.jpg","size":"extralarge"}],"streamable":"0","mbid":"17f9639d-80ed-43b4-bfdf-033a3dff1866"},{"name":"Snobs & Robbers Revised","artist":"Niles Philips","id":"315370196","url":"http:\/\/www.last.fm\/music\/Niles+Philips\/Snobs+&+Robbers+Revised","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/82245703.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/82245703.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/82245703.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/82245703.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops And Robbers","artist":"Michel Legrand","id":"78901065","url":"http:\/\/www.last.fm\/music\/Michel+Legrand\/Cops+And+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/44667811.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/44667811.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/44667811.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/44667811.jpg","size":"extralarge"}],"streamable":"0","mbid":"1ef00bfb-a71d-430a-97bd-7387334aed1f"},{"name":"Grave Robbers (Vol:1)","artist":"The Brothers Blossom","id":"69019353","url":"http:\/\/www.last.fm\/music\/The+Brothers+Blossom\/Grave+Robbers+(Vol:1)","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/33441633.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/33441633.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/33441633.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/33441633.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"at the robbers' house","artist":"the vitamin b12","id":"3803685","url":"http:\/\/www.last.fm\/music\/the+vitamin+b12\/at+the+robbers%27+house","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/6087175.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/6087175.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/6087175.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/6087175.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Grave Robbers With Guns","artist":"Various Artists","id":"3802977","url":"http:\/\/www.last.fm\/music\/Various+Artists\/Grave+Robbers+With+Guns","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/6071387.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/6071387.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/6071387.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/6071387.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Flesh","artist":"ROBBERS","id":"5365901","url":"http:\/\/www.last.fm\/music\/ROBBERS\/Flesh","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/48417223.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/48417223.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/48417223.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/48417223.jpg","size":"extralarge"}],"streamable":"0","mbid":"856e487b-94d5-4324-a95f-7b167d9bb645"},{"name":"The Robbers Roost","artist":"The Street Pavers","id":"276727005","url":"http:\/\/www.last.fm\/music\/The+Street+Pavers\/The+Robbers+Roost","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/65888262.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/65888262.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/65888262.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/65888262.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cars, Robbers, Alleys.","artist":"Great Walls","id":"205177903","url":"http:\/\/www.last.fm\/music\/Great+Walls\/Cars,+Robbers,+Alleys.","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/46507983.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/46507983.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/46507983.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/46507983.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Bungalow (Max Robbers Remix)","artist":"Toromeccanica","id":"241998478","url":"http:\/\/www.last.fm\/music\/Toromeccanica\/Bungalow+(Max+Robbers+Remix)","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/49990757.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/49990757.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/49990757.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/49990757.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Rap Game Robbers","artist":"Everlasting Gangstas -A.K.A - E.L.G.","id":"3131879","url":"http:\/\/www.last.fm\/music\/Everlasting+Gangstas+-A.K.A+-+E.L.G.\/Rap+Game+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/8932787.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/8932787.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/8932787.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/8932787.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Armadillo Grave Robbers","artist":"Armadillo Grave Robbers","id":"3863981","url":"http:\/\/www.last.fm\/music\/Armadillo+Grave+Robbers\/Armadillo+Grave+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/7876983.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/7876983.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/7876983.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/7876983.jpg","size":"extralarge"}],"streamable":"0","mbid":""},{"name":"Robbers and Swills","artist":"Highway Robbers","id":"3190602","url":"http:\/\/www.last.fm\/music\/Highway+Robbers\/Robbers+and+Swills","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/8998195.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/8998195.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/8998195.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/8998195.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops and Robbers [Single]","artist":"Viper Squadron","id":"74569588","url":"http:\/\/www.last.fm\/music\/Viper+Squadron\/Cops+and+Robbers+%5BSingle%5D","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/30124471.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/30124471.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/30124471.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/30124471.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops and Robbers","artist":"Atomic Machines","id":"352391246","url":"http:\/\/www.last.fm\/music\/Atomic+Machines\/Cops+and+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/95578383.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/95578383.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/95578383.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/95578383.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Cops and Robbers","artist":"Various Artists","id":"311688830","url":"http:\/\/www.last.fm\/music\/Various+Artists\/Cops+and+Robbers","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"0","mbid":"587e9b39-d356-4d42-b95e-0e185fd21fb3"},{"name":"The Train Robbers","artist":"Dominic Frontiere","id":"312173376","url":"http:\/\/www.last.fm\/music\/Dominic+Frontiere\/The+Train+Robbers","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"0","mbid":"7ee8ceb1-b2dd-4a4a-8874-efaffa7bbe67"},{"name":"Rivers and Robbers","artist":"Christopher Alan","id":"296472665","url":"http:\/\/www.last.fm\/music\/Christopher+Alan\/Rivers+and+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/73639012.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/73639012.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/73639012.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/73639012.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"Murderders \uff06 Robbers","artist":"Project Pat","id":"3508177","url":"http:\/\/www.last.fm\/music\/Project+Pat\/Murderders+%EF%BC%86+Robbers","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"0","mbid":""},{"name":"Cops and Robbers - Single","artist":"Bean","id":"315268729","url":"http:\/\/www.last.fm\/music\/Bean\/Cops+and+Robbers+-+Single","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/82203405.png","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/82203405.png","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/82203405.png","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/82203405.png","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"I Love Cops 'n' Robbers","artist":"Various Artists","id":"310893787","url":"http:\/\/www.last.fm\/music\/Various+Artists\/I+Love+Cops+%27n%27+Robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/80361835.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/80361835.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/80361835.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/80361835.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"the woman amongst the robbers","artist":"the vitamin b12","id":"3804273","url":"http:\/\/www.last.fm\/music\/the+vitamin+b12\/the+woman+amongst+the+robbers","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/6095275.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/6095275.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/6095275.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/6095275.jpg","size":"extralarge"}],"streamable":"1","mbid":""},{"name":"All Four One \/ Little Robbers","artist":"The Motels","id":"310706510","url":"http:\/\/www.last.fm\/music\/The+Motels\/All+Four+One+%2F+Little+Robbers","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"}],"streamable":"1","mbid":"12d432a9-33c7-486f-a63a-ef5e1f40e611"}]},"@attr":{"for":"Robbers"}}}
59
+ http_version:
60
+ recorded_at: Mon, 20 Jan 2014 22:28:07 GMT
61
+ - request:
62
+ method: get
63
+ uri: http://ws.audioscrobbler.com/2.0/?album=Robbers%20%26%20Cowards&api_key=<LASTFM
64
+ API KEY>&format=json&method=album.search
65
+ body:
66
+ encoding: US-ASCII
67
+ string: ''
68
+ headers:
69
+ User-Agent:
70
+ - Faraday v0.9.0
71
+ Accept-Encoding:
72
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
+ Accept:
74
+ - '*/*'
75
+ response:
76
+ status:
77
+ code: 200
78
+ message: OK
79
+ headers:
80
+ Server:
81
+ - Apache/2.2.22 (Unix)
82
+ X-Web-Node:
83
+ - www192
84
+ Access-Control-Allow-Origin:
85
+ - '*'
86
+ Access-Control-Allow-Methods:
87
+ - POST, GET, OPTIONS
88
+ Access-Control-Max-Age:
89
+ - '86400'
90
+ Cache-Control:
91
+ - max-age=86400
92
+ Expires:
93
+ - Tue, 21 Jan 2014 21:56:08 GMT
94
+ Content-Type:
95
+ - application/json; charset=utf-8;
96
+ Content-Length:
97
+ - '387'
98
+ Accept-Ranges:
99
+ - bytes
100
+ Date:
101
+ - Mon, 20 Jan 2014 22:30:59 GMT
102
+ X-Varnish:
103
+ - 3106647997 3106084162
104
+ Age:
105
+ - '2090'
106
+ Via:
107
+ - 1.1 varnish
108
+ Connection:
109
+ - close
110
+ X-Cms:
111
+ - '1'
112
+ X-Varnish-Host:
113
+ - varnish7
114
+ body:
115
+ encoding: UTF-8
116
+ string: |
117
+ {"results":{"opensearch:Query":{"#text":"","role":"request","searchTerms":"Robbers & Cowards","startPage":"1"},"opensearch:totalResults":"1","opensearch:startIndex":"0","opensearch:itemsPerPage":"50","albummatches":{"album":{"name":"Robbers & Cowards","artist":"Cold War Kids","id":"3251702","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/Robbers+&+Cowards","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9197957.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9197957.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/9197957.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9197957.jpg","size":"extralarge"}],"streamable":"1","mbid":"1cd89dd6-158f-43c8-8a36-70546defb4a9"}},"@attr":{"for":"Robbers & Cowards"}}}
118
+ http_version:
119
+ recorded_at: Mon, 20 Jan 2014 22:30:59 GMT
120
+ - request:
121
+ method: get
122
+ uri: http://ws.audioscrobbler.com/2.0/?album=Robbers%20%26%20Cowards&api_key=<LASTFM
123
+ API KEY>&artist=Cold%20War%20Kids&format=json&method=album.getInfo
124
+ body:
125
+ encoding: US-ASCII
126
+ string: ''
127
+ headers:
128
+ User-Agent:
129
+ - Faraday v0.9.0
130
+ Accept-Encoding:
131
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
132
+ Accept:
133
+ - '*/*'
134
+ response:
135
+ status:
136
+ code: 200
137
+ message: OK
138
+ headers:
139
+ Date:
140
+ - Mon, 20 Jan 2014 23:01:52 GMT
141
+ Server:
142
+ - Apache/2.2.22 (Unix)
143
+ X-Web-Node:
144
+ - www232
145
+ Access-Control-Allow-Origin:
146
+ - '*'
147
+ Access-Control-Allow-Methods:
148
+ - POST, GET, OPTIONS
149
+ Access-Control-Max-Age:
150
+ - '86400'
151
+ Cache-Control:
152
+ - max-age=86400
153
+ Expires:
154
+ - Tue, 21 Jan 2014 23:01:52 GMT
155
+ Vary:
156
+ - Accept-Encoding
157
+ Content-Length:
158
+ - '1185'
159
+ Connection:
160
+ - close
161
+ Content-Type:
162
+ - application/json; charset=utf-8;
163
+ body:
164
+ encoding: UTF-8
165
+ string: |
166
+ {"album":{"name":"Robbers & Cowards","artist":"Cold War Kids","id":"3251702","mbid":"1cd89dd6-158f-43c8-8a36-70546defb4a9","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/Robbers+&+Cowards","releasedate":" 11 Nov 2008, 00:00","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34s\/9197957.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64s\/9197957.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/174s\/9197957.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/300x300\/9197957.jpg","size":"extralarge"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/_\/9197957\/Robbers++Cowards+Cold+War+Kids++Robbers++Coward.jpg","size":"mega"}],"listeners":"333892","playcount":"7387537","tracks":{"track":[{"name":"We Used to Vacation","duration":"241","mbid":"82b38cde-d4c0-4d41-b4eb-d230287c8784","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/We+Used+to+Vacation","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"1"}},{"name":"Hang Me Up to Dry","duration":"216","mbid":"0828547a-fea2-4cbb-97d8-c2bf35874d80","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Hang+Me+Up+to+Dry","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"2"}},{"name":"Tell Me in the Morning","duration":"217","mbid":"1280ef5b-d75a-43ce-a9bb-da6fff5deaf5","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Tell+Me+in+the+Morning","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"3"}},{"name":"Hair Down","duration":"220","mbid":"08cb4c8b-652a-4e77-a576-603dda422dd5","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Hair+Down","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"4"}},{"name":"Passing the Hat","duration":"207","mbid":"081245cb-b177-49b1-b69f-e70c408d01f3","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Passing+the+Hat","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"5"}},{"name":"Saint John","duration":"206","mbid":"b700456c-39d4-4ee8-bd5b-5a155139ce0d","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Saint+John","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"6"}},{"name":"Robbers","duration":"218","mbid":"33cc1c64-e62f-4edd-ad2a-d1eca284a128","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Robbers","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"7"}},{"name":"Hospital Beds","duration":"279","mbid":"1fffaed8-2e23-41a4-978f-a71090b445e2","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Hospital+Beds","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"8"}},{"name":"Pregnant","duration":"237","mbid":"9385ef17-c56c-4bb1-b9de-8d76870801de","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Pregnant","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"9"}},{"name":"Red Wine, Success!","duration":"154","mbid":"d73152c8-30c7-47d7-9cd9-3040437a5871","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Red+Wine,+Success!","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"10"}},{"name":"God, Make Up Your Mind","duration":"286","mbid":"26720c8c-b1dc-4472-96d6-1a146be5d439","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/God,+Make+Up+Your+Mind","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"11"}},{"name":"Rubidoux","duration":"662","mbid":"fef06096-ca5f-496e-a976-a40c55fe63cf","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids\/_\/Rubidoux","streamable":{"#text":"1","fulltrack":"0"},"artist":{"name":"Cold War Kids","mbid":"0741b30d-e15b-4a8c-b2e5-8834a03d6116","url":"http:\/\/www.last.fm\/music\/Cold+War+Kids"},"@attr":{"rank":"12"}}]},"toptags":{"tag":[{"name":"albums i own","url":"http:\/\/www.last.fm\/tag\/albums%20i%20own"},{"name":"2006","url":"http:\/\/www.last.fm\/tag\/2006"},{"name":"indie","url":"http:\/\/www.last.fm\/tag\/indie"},{"name":"indie rock","url":"http:\/\/www.last.fm\/tag\/indie%20rock"},{"name":"00s","url":"http:\/\/www.last.fm\/tag\/00s"}]}}}
167
+ http_version:
168
+ recorded_at: Mon, 20 Jan 2014 23:01:52 GMT
169
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://ws.audioscrobbler.com/2.0/?api_key=<LASTFM API KEY>&artist=65daysofstatic&format=json&method=artist.search
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - Apache/2.2.22 (Unix)
23
+ X-Web-Node:
24
+ - www202
25
+ Access-Control-Allow-Origin:
26
+ - '*'
27
+ Access-Control-Allow-Methods:
28
+ - POST, GET, OPTIONS
29
+ Access-Control-Max-Age:
30
+ - '86400'
31
+ Cache-Control:
32
+ - max-age=86400
33
+ Expires:
34
+ - Tue, 21 Jan 2014 21:35:39 GMT
35
+ Content-Type:
36
+ - application/json; charset=utf-8;
37
+ Content-Length:
38
+ - '959'
39
+ Accept-Ranges:
40
+ - bytes
41
+ Date:
42
+ - Mon, 20 Jan 2014 21:55:56 GMT
43
+ X-Varnish:
44
+ - 61520390 61379634
45
+ Age:
46
+ - '492'
47
+ Via:
48
+ - 1.1 varnish
49
+ Connection:
50
+ - close
51
+ X-Cms:
52
+ - '1'
53
+ body:
54
+ encoding: UTF-8
55
+ string: |
56
+ {"results":{"opensearch:Query":{"#text":"","role":"request","searchTerms":"65daysofstatic","startPage":"1"},"opensearch:totalResults":"68","opensearch:startIndex":"0","opensearch:itemsPerPage":"30","artistmatches":{"artist":[{"name":"65daysofstatic","listeners":"436704","mbid":"0cd12ab3-9628-45ef-a97b-ff18624f14a0","url":"http:\/\/www.last.fm\/music\/65daysofstatic","streamable":"1","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34\/46404977.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64\/46404977.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/46404977.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/252\/46404977.jpg","size":"extralarge"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/_\/46404977\/65daysofstatic+4312266316_916a42bda8.jpg","size":"mega"}]},{"name":"\u259165daysofstatic\u2591","listeners":"991","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%96%9165daysofstatic%E2%96%91","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic, 65daysofstatic","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic,+65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"|65daysofstatic","listeners":"88","mbid":"","url":"http:\/\/www.last.fm\/music\/%7C65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"[65daysofstatic","listeners":"11","mbid":"","url":"http:\/\/www.last.fm\/music\/%5B65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"[65daysofstatic]","listeners":"7","mbid":"","url":"http:\/\/www.last.fm\/music\/%5B65daysofstatic%5D","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u25ba65daysofstatic","listeners":"6","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%96%BA65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic.","listeners":"6","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic.","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u266b65daysofstatic","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%99%AB65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic\u0700","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic%DC%80","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65*daysofstatic","listeners":"4","mbid":"","url":"http:\/\/www.last.fm\/music\/65*daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u260565daysofstatic\u2605","listeners":"4","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%98%8565daysofstatic%E2%98%85","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic*","listeners":"3","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic*","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":".65daysofstatic","listeners":"3","mbid":"","url":"http:\/\/www.last.fm\/music\/.65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65 daysofstatic","listeners":"3","mbid":"","url":"http:\/\/www.last.fm\/music\/65++daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u25cf65daysofstatic","listeners":"3","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%97%8F65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic?","listeners":"3","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic%3F","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic, Robert Smith","listeners":"68","mbid":"","url":"http:\/\/www.last.fm\/music\/+noredirect\/65daysofstatic,+Robert+Smith","streamable":"1","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"15. 65daysofstatic","listeners":"22","mbid":"","url":"http:\/\/www.last.fm\/music\/15.+65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic\/Robert Smith","listeners":"22","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic%2FRobert+Smith","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic [vkhp.net]","listeners":"20","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic+%5Bvkhp.net%5D","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic & Cecily","listeners":"10","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic+&+Cecily","streamable":"1","image":[{"#text":"http:\/\/userserve-ak.last.fm\/serve\/34\/10459323.jpg","size":"small"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/64\/10459323.jpg","size":"medium"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/126\/10459323.jpg","size":"large"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/252\/10459323.jpg","size":"extralarge"},{"#text":"http:\/\/userserve-ak.last.fm\/serve\/500\/10459323\/65daysofstatic++Cecily+Ronjahochlad.jpg","size":"mega"}]},{"name":"65daysofstatic Vs. Kanye","listeners":"7","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic+Vs.+Kanye","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u266b 65daysofstatic \u266b","listeners":"6","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%99%AB+65daysofstatic+%E2%99%AB","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u266b 65daysofstatic","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%99%AB+65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u23b7\u239b -65daysofstatic","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%8E%B7%E2%8E%9B+-65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"\u2716 65daysofstatic","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/%E2%9C%96+65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"a65daysofstatic","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/a65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"65daysofstatic Vs Everyone","listeners":"5","mbid":"","url":"http:\/\/www.last.fm\/music\/65daysofstatic+Vs+Everyone","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]},{"name":"05. 65daysofstatic","listeners":"4","mbid":"","url":"http:\/\/www.last.fm\/music\/05.+65daysofstatic","streamable":"0","image":[{"#text":"","size":"small"},{"#text":"","size":"medium"},{"#text":"","size":"large"},{"#text":"","size":"extralarge"},{"#text":"","size":"mega"}]}]},"@attr":{"for":"65daysofstatic"}}}
57
+ http_version:
58
+ recorded_at: Mon, 20 Jan 2014 21:43:52 GMT
59
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe RubyFm::Album, :vcr do
4
+ context 'searching' do
5
+ it 'returns a list of relevant albums' do
6
+ album_name = 'Robbers & Cowards'
7
+ results = RubyFm::Album.search(album_name)
8
+
9
+ images = ["http://userserve-ak.last.fm/serve/34s/9197957.jpg",
10
+ "http://userserve-ak.last.fm/serve/64s/9197957.jpg",
11
+ "http://userserve-ak.last.fm/serve/126/9197957.jpg",
12
+ "http://userserve-ak.last.fm/serve/300x300/9197957.jpg"]
13
+
14
+ expect(results.size).to_not eql(0)
15
+ expect(results[0]).to be_kind_of(RubyFm::Album)
16
+ expect(results[0].name).to eql(album_name)
17
+ expect(results[0].artist).to eql('Cold War Kids')
18
+ expect(results[0].id).to eql('3251702')
19
+ expect(results[0].mbid).to eql('1cd89dd6-158f-43c8-8a36-70546defb4a9')
20
+ expect(results[0].url).to eql('http://www.last.fm/music/Cold+War+Kids/Robbers+&+Cowards')
21
+ expect(results[0].images).to eql(images)
22
+ expect(results[0].streamable).to eql('1')
23
+ end
24
+ end
25
+
26
+ context 'get tracks' do
27
+ it 'returns a list of tracks for the album' do
28
+ album_name = 'Robbers & Cowards'
29
+ album = RubyFm::Album.search(album_name)[0]
30
+
31
+ expect(album.tracks[0]).to be_kind_of(RubyFm::Track)
32
+ expect(album.tracks.size).to_not eql(0)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe RubyFm::Artist, :vcr do
4
+ context 'searching' do
5
+ it 'returns a list of relevant artists' do
6
+ artist_name = '65daysofstatic'
7
+ results = RubyFm::Artist.search(artist_name)
8
+
9
+ images = ["http://userserve-ak.last.fm/serve/34/46404977.jpg",
10
+ "http://userserve-ak.last.fm/serve/64/46404977.jpg",
11
+ "http://userserve-ak.last.fm/serve/126/46404977.jpg",
12
+ "http://userserve-ak.last.fm/serve/252/46404977.jpg",
13
+ "http://userserve-ak.last.fm/serve/_/46404977/65daysofstatic+4312266316_916a42bda8.jpg"]
14
+
15
+ expect(results.size).to_not eql(0)
16
+ expect(results[0]).to be_kind_of(RubyFm::Artist)
17
+ expect(results[0].name).to eql(artist_name)
18
+ expect(results[0].listeners).to eql('436704')
19
+ expect(results[0].mbid).to eql('0cd12ab3-9628-45ef-a97b-ff18624f14a0')
20
+ expect(results[0].url).to eql('http://www.last.fm/music/65daysofstatic')
21
+ expect(results[0].streamable).to eql('1')
22
+ expect(results[0].images).to eql(images)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require_relative '../lib/ruby_fm'
4
+
5
+ RubyFm.api_key = ENV['last_fm_api_key']
6
+
7
+ VCR.configure do |c|
8
+ c.cassette_library_dir = 'spec/cassettes'
9
+ c.hook_into :webmock
10
+ c.configure_rspec_metadata!
11
+ c.default_cassette_options = { :record => :new_episodes }
12
+ c.filter_sensitive_data('<LASTFM API KEY>') { RubyFm.api_key }
13
+ end
14
+
15
+ RSpec.configure do |c|
16
+ c.treat_symbols_as_metadata_keys_with_true_values = true
17
+ end
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_fm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Carter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: multi_json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: vcr
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Wrapper for using the Last FM API
126
+ email:
127
+ - dnyecarter@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - .gitignore
133
+ - Gemfile
134
+ - LICENSE.txt
135
+ - README.md
136
+ - Rakefile
137
+ - lib/ruby_fm.rb
138
+ - lib/ruby_fm/album.rb
139
+ - lib/ruby_fm/artist.rb
140
+ - lib/ruby_fm/track.rb
141
+ - lib/ruby_fm/version.rb
142
+ - ruby_fm.gemspec
143
+ - spec/cassettes/RubyFm_Album/get_tracks/returns_a_list_of_tracks_for_the_album.yml
144
+ - spec/cassettes/RubyFm_Album/searching/returns_a_list_of_relevant_albums.yml
145
+ - spec/cassettes/RubyFm_Artist/searching/returns_a_list_of_relevant_artists.yml
146
+ - spec/ruby_fm/album_spec.rb
147
+ - spec/ruby_fm/artist_spec.rb
148
+ - spec/spec_helper.rb
149
+ homepage: ''
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
153
+ post_install_message:
154
+ rdoc_options: []
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 2.1.10
170
+ signing_key:
171
+ specification_version: 4
172
+ summary: Wrapper for using the Last FM API using Faraday, VCS, and RSpec
173
+ test_files:
174
+ - spec/cassettes/RubyFm_Album/get_tracks/returns_a_list_of_tracks_for_the_album.yml
175
+ - spec/cassettes/RubyFm_Album/searching/returns_a_list_of_relevant_albums.yml
176
+ - spec/cassettes/RubyFm_Artist/searching/returns_a_list_of_relevant_artists.yml
177
+ - spec/ruby_fm/album_spec.rb
178
+ - spec/ruby_fm/artist_spec.rb
179
+ - spec/spec_helper.rb