lastfm 0.1.0 → 0.2.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 +4 -0
- data/VERSION +1 -1
- data/lastfm.gemspec +2 -2
- data/lib/lastfm.rb +4 -0
- data/lib/lastfm/method_category/track.rb +2 -0
- data/spec/fixtures/artist_get_events.xml +7 -7
- data/spec/lastfm_spec.rb +24 -2
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -14,6 +14,8 @@ A Ruby interface for Last.fm Web Services v2.0
|
|
14
14
|
lastfm.session = lastfm.auth.get_session(token)
|
15
15
|
|
16
16
|
lastfm.track.love('Hujiko Pro', 'acid acid 7riddim')
|
17
|
+
lastfm.track.scrobble('Hujiko Pro', 'acid acid 7riddim')
|
18
|
+
lastfm.track.update_now_playing('Hujiko Pro', 'acid acid 7riddim')
|
17
19
|
|
18
20
|
== Supported API Methods
|
19
21
|
|
@@ -35,8 +37,10 @@ It supports methods which require {authentication}[http://www.last.fm/api/authen
|
|
35
37
|
* track.getTopTags
|
36
38
|
* track.love
|
37
39
|
* track.removeTag
|
40
|
+
* track.scrobble
|
38
41
|
* track.search
|
39
42
|
* track.share
|
43
|
+
* track.updateNowPlaying
|
40
44
|
|
41
45
|
=== Artist
|
42
46
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lastfm.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{lastfm}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["youpy"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-12-06}
|
13
13
|
s.description = %q{A ruby interface for Last.fm web services version 2.0}
|
14
14
|
s.email = %q{youpy@buycheapviagraonlinenow.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/lastfm.rb
CHANGED
@@ -38,6 +38,10 @@ class Lastfm
|
|
38
38
|
MethodCategory::Artist.new(self)
|
39
39
|
end
|
40
40
|
|
41
|
+
def user
|
42
|
+
MethodCategory::User.new(self)
|
43
|
+
end
|
44
|
+
|
41
45
|
def request(method, params = {}, http_method = :get, with_signature = false, with_session = false)
|
42
46
|
params[:method] = method
|
43
47
|
params[:api_key] = @api_key
|
@@ -6,6 +6,8 @@ class Lastfm
|
|
6
6
|
write_method :ban, [:artist, :track]
|
7
7
|
write_method :love, [:artist, :track]
|
8
8
|
write_method :share, [:artist, :track, :recipient], [[:message, nil]]
|
9
|
+
write_method :scrobble, [:artist, :track], [[:album, nil], [:timestamp, Time.now.utc.to_i]]
|
10
|
+
write_method :update_now_playing, [:artist, :track]
|
9
11
|
|
10
12
|
regular_method :get_info, [:artist, :track], [[:username, nil]] do |response|
|
11
13
|
response.xml['track']
|
@@ -25,11 +25,11 @@
|
|
25
25
|
<website></website>
|
26
26
|
<phonenumber></phonenumber>
|
27
27
|
<image size="small"></image>
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
</venue>
|
28
|
+
<image size="medium"></image>
|
29
|
+
<image size="large"></image>
|
30
|
+
<image size="extralarge"></image>
|
31
|
+
<image size="mega"></image>
|
32
|
+
</venue>
|
33
33
|
<startDate>Sat, 23 Oct 2010 19:30:00</startDate>
|
34
34
|
<description></description>
|
35
35
|
<image size="small">http://userserve-ak.last.fm/serve/34/34814037.jpg</image>
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<image size="extralarge">http://userserve-ak.last.fm/serve/252/34814037.jpg</image>
|
39
39
|
<attendance>2</attendance>
|
40
40
|
<reviews>0</reviews>
|
41
|
-
<tag>lastfm:event=1584537</tag>
|
41
|
+
<tag>lastfm:event=1584537</tag>
|
42
42
|
<url>http://www.last.fm/event/1584537+Cher</url>
|
43
43
|
<website></website>
|
44
44
|
<tickets>
|
@@ -52,6 +52,6 @@
|
|
52
52
|
<tag>80s</tag>
|
53
53
|
<tag>cher</tag>
|
54
54
|
</tags>
|
55
|
-
</event>
|
55
|
+
</event>
|
56
56
|
</events>
|
57
57
|
</lfm>
|
data/spec/lastfm_spec.rb
CHANGED
@@ -293,8 +293,30 @@ XML
|
|
293
293
|
|
294
294
|
@lastfm.track.share('foo artist', 'foo track', 'foo@example.com', 'this is a message').should be_true
|
295
295
|
end
|
296
|
+
|
297
|
+
it 'should scrobble' do
|
298
|
+
time = Time.now
|
299
|
+
@lastfm.should_receive(:request).with('track.scrobble', {
|
300
|
+
:artist => 'foo artist',
|
301
|
+
:track => 'foo track',
|
302
|
+
:album => nil,
|
303
|
+
:timestamp => time
|
304
|
+
}, :post, true, true).and_return(@ok_response)
|
305
|
+
|
306
|
+
@lastfm.track.scrobble('foo artist', 'foo track', nil, time)
|
307
|
+
end
|
308
|
+
|
309
|
+
|
310
|
+
it 'should update now playing' do
|
311
|
+
@lastfm.should_receive(:request).with('track.updateNowPlaying', {
|
312
|
+
:artist => 'foo artist',
|
313
|
+
:track => 'foo track',
|
314
|
+
}, :post, true, true).and_return(@ok_response)
|
315
|
+
|
316
|
+
@lastfm.track.update_now_playing('foo artist', 'foo track')
|
317
|
+
end
|
296
318
|
end
|
297
|
-
|
319
|
+
|
298
320
|
describe '#artist' do
|
299
321
|
it 'should return an instance of Lastfm::Artist' do
|
300
322
|
@lastfm.artist.should be_an_instance_of(Lastfm::MethodCategory::Artist)
|
@@ -304,7 +326,7 @@ XML
|
|
304
326
|
@lastfm.should_receive(:request).with('artist.getEvents', {
|
305
327
|
:artist => 'Cher'
|
306
328
|
}).and_return(make_response('artist_get_events'))
|
307
|
-
|
329
|
+
|
308
330
|
events = @lastfm.artist.get_events('Cher')
|
309
331
|
events.size.should eql(1)
|
310
332
|
events[0]['title'].should eql('Cher')
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- youpy
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-12-06 00:00:00 +09:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|