ruby_fm 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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