firstfm 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +6 -0
- data/VERSION.yml +3 -3
- data/firstfm.gemspec +8 -1
- data/lib/firstfm/artist.rb +57 -0
- data/lib/firstfm/track.rb +45 -0
- data/lib/firstfm.rb +2 -0
- data/test/fixtures/artists.xml +371 -0
- data/test/fixtures/top_tracks.xml +844 -0
- data/test/fixtures/tracks.xml +363 -0
- data/test/test_artist.rb +39 -0
- data/test/test_track.rb +22 -0
- metadata +30 -23
data/README.rdoc
CHANGED
data/VERSION.yml
CHANGED
data/firstfm.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{firstfm}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aleksandr Lossenko"]
|
@@ -25,18 +25,25 @@ Gem::Specification.new do |s|
|
|
25
25
|
"VERSION.yml",
|
26
26
|
"firstfm.gemspec",
|
27
27
|
"lib/firstfm.rb",
|
28
|
+
"lib/firstfm/artist.rb",
|
28
29
|
"lib/firstfm/event.rb",
|
29
30
|
"lib/firstfm/geo.rb",
|
30
31
|
"lib/firstfm/location.rb",
|
32
|
+
"lib/firstfm/track.rb",
|
31
33
|
"lib/firstfm/venue.rb",
|
34
|
+
"test/fixtures/artists.xml",
|
32
35
|
"test/fixtures/event.xml",
|
33
36
|
"test/fixtures/events.xml",
|
34
37
|
"test/fixtures/geo_event.xml",
|
35
38
|
"test/fixtures/geo_events.xml",
|
39
|
+
"test/fixtures/top_tracks.xml",
|
40
|
+
"test/fixtures/tracks.xml",
|
36
41
|
"test/fixtures/venue.xml",
|
37
42
|
"test/fixtures/venues.xml",
|
38
43
|
"test/helper.rb",
|
44
|
+
"test/test_artist.rb",
|
39
45
|
"test/test_geo.rb",
|
46
|
+
"test/test_track.rb",
|
40
47
|
"test/test_venue.rb"
|
41
48
|
]
|
42
49
|
s.homepage = %q{http://github.com/egze/firstfm}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Firstfm
|
2
|
+
|
3
|
+
class Artist
|
4
|
+
|
5
|
+
attr_accessor :name, :mbid, :url, :listeners, :streamable, :images
|
6
|
+
|
7
|
+
include HTTParty
|
8
|
+
base_uri 'ws.audioscrobbler.com'
|
9
|
+
format :xml
|
10
|
+
|
11
|
+
def initialize(params = {})
|
12
|
+
@name = params[:name]
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.search(artist, page = 1, limit = 50)
|
16
|
+
response = get("/2.0/", {:query => {:method => 'artist.search', :artist => artist, :page => page, :limit => limit, :api_key => Firstfm::CONFIG['api_key']}})
|
17
|
+
artists_array = (response and response["lfm"] and response["lfm"]["results"] and response["lfm"]["results"]["artistmatches"] and response["lfm"]["results"]["artistmatches"]["artist"]) || []
|
18
|
+
artists = Artist.init_from_array(artists_array)
|
19
|
+
WillPaginate::Collection.create(page, limit) do |pager|
|
20
|
+
pager.replace artists
|
21
|
+
pager.total_entries = response['lfm']['results']['opensearch:totalResults'].to_i
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.get_top_tracks(artist, page = 1, limit = 50)
|
26
|
+
response = get("/2.0/", {:query => {:method => 'artist.getTopTracks', :artist => artist, :page => page, :limit => limit, :api_key => Firstfm::CONFIG['api_key']}})
|
27
|
+
tracks_array = (response and response["lfm"] and response["lfm"]["toptracks"] and response["lfm"]["toptracks"]["track"]) || []
|
28
|
+
tracks = Track.init_from_array(tracks_array)
|
29
|
+
WillPaginate::Collection.create(page, limit) do |pager|
|
30
|
+
pager.replace tracks
|
31
|
+
pager.total_entries = response["lfm"]["toptracks"]["total"].to_i
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.init_from_array(array)
|
36
|
+
return [] unless array.is_a?(Array)
|
37
|
+
array.inject([]) do |arr, artist|
|
38
|
+
arr << init_from_hash(artist)
|
39
|
+
arr
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.init_from_hash(hash)
|
44
|
+
return nil unless hash.is_a?(Hash)
|
45
|
+
Artist.new.tap do |artist|
|
46
|
+
artist.name = hash["name"]
|
47
|
+
artist.mbid = hash["mbid"]
|
48
|
+
artist.url = hash["url"]
|
49
|
+
artist.listeners = hash["listeners"].to_i
|
50
|
+
artist.streamable = hash["streamable"] == "1"
|
51
|
+
artist.images = hash["image"]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Firstfm
|
2
|
+
|
3
|
+
class Track
|
4
|
+
|
5
|
+
attr_accessor :name, :artist, :url, :streamable, :listeners, :images, :mbid, :rank
|
6
|
+
|
7
|
+
include HTTParty
|
8
|
+
base_uri 'ws.audioscrobbler.com'
|
9
|
+
format :xml
|
10
|
+
|
11
|
+
def self.search(track, page = 1, limit = 50)
|
12
|
+
response = get("/2.0/", {:query => {:method => 'tracks.search', :track => track, :page => page, :limit => limit, :api_key => Firstfm::CONFIG['api_key']}})
|
13
|
+
tracks_array = (response and response["lfm"] and response["lfm"]["results"] and response["lfm"]["results"]["trackmatches"] and response["lfm"]["results"]["trackmatches"]["track"]) || []
|
14
|
+
tracks = Track.init_from_array(tracks_array)
|
15
|
+
WillPaginate::Collection.create(page, limit) do |pager|
|
16
|
+
pager.replace tracks
|
17
|
+
pager.total_entries = response['lfm']['results']['opensearch:totalResults'].to_i
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.init_from_array(array)
|
22
|
+
return [] unless array.is_a?(Array)
|
23
|
+
array.inject([]) do |arr, track|
|
24
|
+
arr << init_from_hash(track)
|
25
|
+
arr
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.init_from_hash(hash)
|
30
|
+
return nil unless hash.is_a?(Hash)
|
31
|
+
Track.new.tap do |track|
|
32
|
+
track.rank = hash["rank"].to_i
|
33
|
+
track.name = hash["name"]
|
34
|
+
track.mbid = hash["mbid"]
|
35
|
+
track.url = hash["url"]
|
36
|
+
track.listeners = hash["listeners"].to_i
|
37
|
+
track.streamable = hash["streamable"] == "1"
|
38
|
+
track.images = hash["image"]
|
39
|
+
track.artist = hash["artist"].is_a?(Hash) ? Artist.init_from_hash(hash["artist"]) : Artist.new(:name => hash["artist"])
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
data/lib/firstfm.rb
CHANGED
@@ -0,0 +1,371 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<lfm status='ok'>
|
3
|
+
<results xmlns:opensearch='http://a9.com/-/spec/opensearch/1.1/' for='cher'>
|
4
|
+
<opensearch:Query searchTerms='cher' startPage='1' role='request' />
|
5
|
+
<opensearch:totalResults>424</opensearch:totalResults>
|
6
|
+
<opensearch:startIndex>0</opensearch:startIndex>
|
7
|
+
<opensearch:itemsPerPage>30</opensearch:itemsPerPage>
|
8
|
+
<artistmatches>
|
9
|
+
<artist>
|
10
|
+
<name>Cher</name>
|
11
|
+
<listeners>666642</listeners>
|
12
|
+
<mbid>bfcc6d75-a6a5-4bc6-8282-47aec8531818</mbid>
|
13
|
+
<url>http://www.last.fm/music/Cher</url>
|
14
|
+
<streamable>1</streamable>
|
15
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/62875209.png</image>
|
16
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/62875209.png</image>
|
17
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/62875209.png</image>
|
18
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/62875209.png</image>
|
19
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/500/62875209/Cher.png</image>
|
20
|
+
</artist>
|
21
|
+
<artist>
|
22
|
+
<name>Sonny & Cher</name>
|
23
|
+
<listeners>146938</listeners>
|
24
|
+
<mbid>3d6e4b6d-2700-458c-9722-9021965a8164</mbid>
|
25
|
+
<url>http://www.last.fm/music/Sonny%2B%2526%2BCher</url>
|
26
|
+
<streamable>1</streamable>
|
27
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/244080.jpg</image>
|
28
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/244080.jpg</image>
|
29
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/244080.jpg</image>
|
30
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/244080.jpg</image>
|
31
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/244080/Sonny++Cher.jpg</image>
|
32
|
+
</artist>
|
33
|
+
<artist>
|
34
|
+
<name>Cher Lloyd</name>
|
35
|
+
<listeners>4803</listeners>
|
36
|
+
<mbid></mbid>
|
37
|
+
<url>http://www.last.fm/music/Cher+Lloyd</url>
|
38
|
+
<streamable>0</streamable>
|
39
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/64921624.png</image>
|
40
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/64921624.png</image>
|
41
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/64921624.png</image>
|
42
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/64921624.png</image>
|
43
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/500/64921624/Cher+Lloyd.png</image>
|
44
|
+
</artist>
|
45
|
+
<artist>
|
46
|
+
<name>Tina Turner, Elton John, Cher</name>
|
47
|
+
<listeners>3474</listeners>
|
48
|
+
<mbid></mbid>
|
49
|
+
<url>http://www.last.fm/music/Tina+Turner%2C+Elton+John%2C+Cher</url>
|
50
|
+
<streamable>0</streamable>
|
51
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/51873367.jpg</image>
|
52
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/51873367.jpg</image>
|
53
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/51873367.jpg</image>
|
54
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/51873367.jpg</image>
|
55
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/500/51873367/Tina+Turner+Elton+John+Cher+divaslive99front.jpg</image>
|
56
|
+
</artist>
|
57
|
+
<artist>
|
58
|
+
<name>Meat Loaf & Cher</name>
|
59
|
+
<listeners>2256</listeners>
|
60
|
+
<mbid></mbid>
|
61
|
+
<url>http://www.last.fm/music/Meat%2BLoaf%2B%2526%2BCher</url>
|
62
|
+
<streamable>0</streamable>
|
63
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/573414.jpg</image>
|
64
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/573414.jpg</image>
|
65
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/573414.jpg</image>
|
66
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/573414.jpg</image>
|
67
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/573414/Meat+Loaf++Cher.jpg</image>
|
68
|
+
</artist>
|
69
|
+
<artist>
|
70
|
+
<name>Peter Cetera & Cher</name>
|
71
|
+
<listeners>1136</listeners>
|
72
|
+
<mbid></mbid>
|
73
|
+
<url>http://www.last.fm/music/Peter%2BCetera%2B%2526%2BCher</url>
|
74
|
+
<streamable>0</streamable>
|
75
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/21678855.jpg</image>
|
76
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/21678855.jpg</image>
|
77
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/21678855.jpg</image>
|
78
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/21678855.jpg</image>
|
79
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/21678855/Peter+Cetera++Cher+beztytuu.jpg</image>
|
80
|
+
</artist>
|
81
|
+
<artist>
|
82
|
+
<name>Cher --do you believe in life</name>
|
83
|
+
<listeners>1073</listeners>
|
84
|
+
<mbid></mbid>
|
85
|
+
<url>http://www.last.fm/music/Cher+--do+you+believe+in+life</url>
|
86
|
+
<streamable>0</streamable>
|
87
|
+
<image size='small'></image>
|
88
|
+
<image size='medium'></image>
|
89
|
+
<image size='large'></image>
|
90
|
+
<image size='extralarge'></image>
|
91
|
+
<image size='mega'></image>
|
92
|
+
</artist>
|
93
|
+
<artist>
|
94
|
+
<name>Cher w/ Beavis & Butt-Head</name>
|
95
|
+
<listeners>662</listeners>
|
96
|
+
<mbid></mbid>
|
97
|
+
<url>http://www.last.fm/music/Cher%2Bw%252F%2BBeavis%2B%2526%2BButt-Head</url>
|
98
|
+
<streamable>0</streamable>
|
99
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/3033501.jpg</image>
|
100
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/3033501.jpg</image>
|
101
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/3033501.jpg</image>
|
102
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/3033501.jpg</image>
|
103
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/3033501/Cher+w+Beavis++ButtHead+1b.jpg</image>
|
104
|
+
</artist>
|
105
|
+
<artist>
|
106
|
+
<name>Cher & Peter Cetra</name>
|
107
|
+
<listeners>616</listeners>
|
108
|
+
<mbid></mbid>
|
109
|
+
<url>http://www.last.fm/music/Cher%2B%2526%2BPeter%2BCetra</url>
|
110
|
+
<streamable>0</streamable>
|
111
|
+
<image size='small'></image>
|
112
|
+
<image size='medium'></image>
|
113
|
+
<image size='large'></image>
|
114
|
+
<image size='extralarge'></image>
|
115
|
+
<image size='mega'></image>
|
116
|
+
</artist>
|
117
|
+
<artist>
|
118
|
+
<name>DJ Earworm feat. Madonna, Cher, Whitney Houston</name>
|
119
|
+
<listeners>615</listeners>
|
120
|
+
<mbid></mbid>
|
121
|
+
<url>http://www.last.fm/music/DJ+Earworm+feat.+Madonna%2C+Cher%2C+Whitney+Houston</url>
|
122
|
+
<streamable>0</streamable>
|
123
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/58696065.png</image>
|
124
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/58696065.png</image>
|
125
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/58696065.png</image>
|
126
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/58696065.png</image>
|
127
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/58696065/DJ+Earworm+feat+Madonna+Cher+Whitney+Houston+lastfmkeepstatsclean.png</image>
|
128
|
+
</artist>
|
129
|
+
<artist>
|
130
|
+
<name>Cher/Peter Cetera</name>
|
131
|
+
<listeners>553</listeners>
|
132
|
+
<mbid></mbid>
|
133
|
+
<url>http://www.last.fm/music/Cher%252FPeter%2BCetera</url>
|
134
|
+
<streamable>0</streamable>
|
135
|
+
<image size='small'></image>
|
136
|
+
<image size='medium'></image>
|
137
|
+
<image size='large'></image>
|
138
|
+
<image size='extralarge'></image>
|
139
|
+
<image size='mega'></image>
|
140
|
+
</artist>
|
141
|
+
<artist>
|
142
|
+
<name>Cher, Chrissie Hynde & Neneh Cherry</name>
|
143
|
+
<listeners>568</listeners>
|
144
|
+
<mbid></mbid>
|
145
|
+
<url>http://www.last.fm/music/Cher%252C%2BChrissie%2BHynde%2B%2526%2BNeneh%2BCherry</url>
|
146
|
+
<streamable>0</streamable>
|
147
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/32728887.jpg</image>
|
148
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/32728887.jpg</image>
|
149
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/32728887.jpg</image>
|
150
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/32728887.jpg</image>
|
151
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/32728887/Cher+Chrissie+Hynde++Neneh+Cherry+lovecanbuildabridge.jpg</image>
|
152
|
+
</artist>
|
153
|
+
<artist>
|
154
|
+
<name>Cher With Beavis And Butthead</name>
|
155
|
+
<listeners>500</listeners>
|
156
|
+
<mbid></mbid>
|
157
|
+
<url>http://www.last.fm/music/Cher+With+Beavis+And+Butthead</url>
|
158
|
+
<streamable>0</streamable>
|
159
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/560290.jpg</image>
|
160
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/560290.jpg</image>
|
161
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/560290.jpg</image>
|
162
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/560290.jpg</image>
|
163
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/560290/Cher+With+Beavis+And+Butthead.jpg</image>
|
164
|
+
</artist>
|
165
|
+
<artist>
|
166
|
+
<name>Cher With Beavis And Butt-head</name>
|
167
|
+
<listeners>514</listeners>
|
168
|
+
<mbid>b0bafb6e-16e3-4084-920e-6e081475838d</mbid>
|
169
|
+
<url>http://www.last.fm/music/Cher+With+Beavis+And+Butt-head</url>
|
170
|
+
<streamable>0</streamable>
|
171
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/35267195.jpg</image>
|
172
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/35267195.jpg</image>
|
173
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/35267195.jpg</image>
|
174
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/35267195.jpg</image>
|
175
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/35267195/Cher+With+Beavis+And+Butthead.jpg</image>
|
176
|
+
</artist>
|
177
|
+
<artist>
|
178
|
+
<name>Cher, Chrissie Hynde & Neneh Cherry with Eric Clapton</name>
|
179
|
+
<listeners>486</listeners>
|
180
|
+
<mbid></mbid>
|
181
|
+
<url>http://www.last.fm/music/Cher%252C%2BChrissie%2BHynde%2B%2526%2BNeneh%2BCherry%2Bwith%2BEric%2BClapton</url>
|
182
|
+
<streamable>0</streamable>
|
183
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/29792815.jpg</image>
|
184
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/29792815.jpg</image>
|
185
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/29792815.jpg</image>
|
186
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/29792815.jpg</image>
|
187
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/29792815/Cher+Chrissie+Hynde++Neneh+Cherry+with+Eric+Clapto+Cher+Chrissie+Hynde++Neneh+Che.jpg</image>
|
188
|
+
</artist>
|
189
|
+
<artist>
|
190
|
+
<name>Madonna vs. Cher vs. Whitney Houston vs. George Kranz</name>
|
191
|
+
<listeners>417</listeners>
|
192
|
+
<mbid></mbid>
|
193
|
+
<url>http://www.last.fm/music/Madonna+vs.+Cher+vs.+Whitney+Houston+vs.+George+Kranz</url>
|
194
|
+
<streamable>0</streamable>
|
195
|
+
<image size='small'></image>
|
196
|
+
<image size='medium'></image>
|
197
|
+
<image size='large'></image>
|
198
|
+
<image size='extralarge'></image>
|
199
|
+
<image size='mega'></image>
|
200
|
+
</artist>
|
201
|
+
<artist>
|
202
|
+
<name>Cher, Chrissie Hynde and Neneh Cherry</name>
|
203
|
+
<listeners>334</listeners>
|
204
|
+
<mbid></mbid>
|
205
|
+
<url>http://www.last.fm/music/Cher%2C+Chrissie+Hynde+and+Neneh+Cherry</url>
|
206
|
+
<streamable>1</streamable>
|
207
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/39963631.png</image>
|
208
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/39963631.png</image>
|
209
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/39963631.png</image>
|
210
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/39963631.png</image>
|
211
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/39963631/Cher+Chrissie+Hynde+and+Neneh+Cherry+lcbab.png</image>
|
212
|
+
</artist>
|
213
|
+
<artist>
|
214
|
+
<name>Meat Loaf (with Cher) - Dead Ringer For Love</name>
|
215
|
+
<listeners>333</listeners>
|
216
|
+
<mbid></mbid>
|
217
|
+
<url>http://www.last.fm/music/Meat+Loaf+%28with+Cher%29+-+Dead+Ringer+For+Love</url>
|
218
|
+
<streamable>0</streamable>
|
219
|
+
<image size='small'></image>
|
220
|
+
<image size='medium'></image>
|
221
|
+
<image size='large'></image>
|
222
|
+
<image size='extralarge'></image>
|
223
|
+
<image size='mega'></image>
|
224
|
+
</artist>
|
225
|
+
<artist>
|
226
|
+
<name>Cher/Meatloaf</name>
|
227
|
+
<listeners>247</listeners>
|
228
|
+
<mbid></mbid>
|
229
|
+
<url>http://www.last.fm/music/Cher%252FMeatloaf</url>
|
230
|
+
<streamable>0</streamable>
|
231
|
+
<image size='small'></image>
|
232
|
+
<image size='medium'></image>
|
233
|
+
<image size='large'></image>
|
234
|
+
<image size='extralarge'></image>
|
235
|
+
<image size='mega'></image>
|
236
|
+
</artist>
|
237
|
+
<artist>
|
238
|
+
<name>Peter Cetera and Cher</name>
|
239
|
+
<listeners>225</listeners>
|
240
|
+
<mbid></mbid>
|
241
|
+
<url>http://www.last.fm/music/Peter+Cetera+and+Cher</url>
|
242
|
+
<streamable>0</streamable>
|
243
|
+
<image size='small'></image>
|
244
|
+
<image size='medium'></image>
|
245
|
+
<image size='large'></image>
|
246
|
+
<image size='extralarge'></image>
|
247
|
+
<image size='mega'></image>
|
248
|
+
</artist>
|
249
|
+
<artist>
|
250
|
+
<name>Chér</name>
|
251
|
+
<listeners>49</listeners>
|
252
|
+
<mbid></mbid>
|
253
|
+
<url>http://www.last.fm/music/Ch%C3%A9r</url>
|
254
|
+
<streamable>0</streamable>
|
255
|
+
<image size='small'></image>
|
256
|
+
<image size='medium'></image>
|
257
|
+
<image size='large'></image>
|
258
|
+
<image size='extralarge'></image>
|
259
|
+
<image size='mega'></image>
|
260
|
+
</artist>
|
261
|
+
<artist>
|
262
|
+
<name>Rosie & Cher</name>
|
263
|
+
<listeners>156</listeners>
|
264
|
+
<mbid></mbid>
|
265
|
+
<url>http://www.last.fm/music/+noredirect/Rosie%2B%2526%2BCher</url>
|
266
|
+
<streamable>0</streamable>
|
267
|
+
<image size='small'></image>
|
268
|
+
<image size='medium'></image>
|
269
|
+
<image size='large'></image>
|
270
|
+
<image size='extralarge'></image>
|
271
|
+
<image size='mega'></image>
|
272
|
+
</artist>
|
273
|
+
<artist>
|
274
|
+
<name>Beavis & Butt-Head/Cher</name>
|
275
|
+
<listeners>216</listeners>
|
276
|
+
<mbid></mbid>
|
277
|
+
<url>http://www.last.fm/music/Beavis%2B%2526%2BButt-Head%252FCher</url>
|
278
|
+
<streamable>0</streamable>
|
279
|
+
<image size='small'></image>
|
280
|
+
<image size='medium'></image>
|
281
|
+
<image size='large'></image>
|
282
|
+
<image size='extralarge'></image>
|
283
|
+
<image size='mega'></image>
|
284
|
+
</artist>
|
285
|
+
<artist>
|
286
|
+
<name>Cher vs. Snoop Dogg</name>
|
287
|
+
<listeners>179</listeners>
|
288
|
+
<mbid></mbid>
|
289
|
+
<url>http://www.last.fm/music/Cher+vs.+Snoop+Dogg</url>
|
290
|
+
<streamable>0</streamable>
|
291
|
+
<image size='small'></image>
|
292
|
+
<image size='medium'></image>
|
293
|
+
<image size='large'></image>
|
294
|
+
<image size='extralarge'></image>
|
295
|
+
<image size='mega'></image>
|
296
|
+
</artist>
|
297
|
+
<artist>
|
298
|
+
<name>Cher with Beavis & Butthead</name>
|
299
|
+
<listeners>176</listeners>
|
300
|
+
<mbid></mbid>
|
301
|
+
<url>http://www.last.fm/music/Cher%2Bwith%2BBeavis%2B%2526%2BButthead</url>
|
302
|
+
<streamable>0</streamable>
|
303
|
+
<image size='small'>http://userserve-ak.last.fm/serve/34/4227292.jpg</image>
|
304
|
+
<image size='medium'>http://userserve-ak.last.fm/serve/64/4227292.jpg</image>
|
305
|
+
<image size='large'>http://userserve-ak.last.fm/serve/126/4227292.jpg</image>
|
306
|
+
<image size='extralarge'>http://userserve-ak.last.fm/serve/252/4227292.jpg</image>
|
307
|
+
<image size='mega'>http://userserve-ak.last.fm/serve/_/4227292/Cher+with+Beavis++Butthead+Video+screenshot.jpg</image>
|
308
|
+
</artist>
|
309
|
+
<artist>
|
310
|
+
<name>cher.</name>
|
311
|
+
<listeners>14</listeners>
|
312
|
+
<mbid></mbid>
|
313
|
+
<url>http://www.last.fm/music/cher.</url>
|
314
|
+
<streamable>0</streamable>
|
315
|
+
<image size='small'></image>
|
316
|
+
<image size='medium'></image>
|
317
|
+
<image size='large'></image>
|
318
|
+
<image size='extralarge'></image>
|
319
|
+
<image size='mega'></image>
|
320
|
+
</artist>
|
321
|
+
<artist>
|
322
|
+
<name>Cher-</name>
|
323
|
+
<listeners>12</listeners>
|
324
|
+
<mbid></mbid>
|
325
|
+
<url>http://www.last.fm/music/Cher-</url>
|
326
|
+
<streamable>0</streamable>
|
327
|
+
<image size='small'></image>
|
328
|
+
<image size='medium'></image>
|
329
|
+
<image size='large'></image>
|
330
|
+
<image size='extralarge'></image>
|
331
|
+
<image size='mega'></image>
|
332
|
+
</artist>
|
333
|
+
<artist>
|
334
|
+
<name>´Cher</name>
|
335
|
+
<listeners>9</listeners>
|
336
|
+
<mbid></mbid>
|
337
|
+
<url>http://www.last.fm/music/%C2%B4Cher</url>
|
338
|
+
<streamable>0</streamable>
|
339
|
+
<image size='small'></image>
|
340
|
+
<image size='medium'></image>
|
341
|
+
<image size='large'></image>
|
342
|
+
<image size='extralarge'></image>
|
343
|
+
<image size='mega'></image>
|
344
|
+
</artist>
|
345
|
+
<artist>
|
346
|
+
<name>Meat Loaf (with Cher) - Dead..</name>
|
347
|
+
<listeners>189</listeners>
|
348
|
+
<mbid></mbid>
|
349
|
+
<url>http://www.last.fm/music/Meat+Loaf+%28with+Cher%29+-+Dead..</url>
|
350
|
+
<streamable>0</streamable>
|
351
|
+
<image size='small'></image>
|
352
|
+
<image size='medium'></image>
|
353
|
+
<image size='large'></image>
|
354
|
+
<image size='extralarge'></image>
|
355
|
+
<image size='mega'></image>
|
356
|
+
</artist>
|
357
|
+
<artist>
|
358
|
+
<name>Cher & Rosie</name>
|
359
|
+
<listeners>128</listeners>
|
360
|
+
<mbid></mbid>
|
361
|
+
<url>http://www.last.fm/music/Cher%2B%2526%2BRosie</url>
|
362
|
+
<streamable>0</streamable>
|
363
|
+
<image size='small'></image>
|
364
|
+
<image size='medium'></image>
|
365
|
+
<image size='large'></image>
|
366
|
+
<image size='extralarge'></image>
|
367
|
+
<image size='mega'></image>
|
368
|
+
</artist>
|
369
|
+
</artistmatches>
|
370
|
+
</results>
|
371
|
+
</lfm>
|