firstfm 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|