lastgroov 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.md +20 -0
- data/VERSION +1 -1
- data/bin/lastgroov +15 -0
- data/lastgroov.gemspec +7 -5
- data/lib/lastgroov.rb +25 -18
- metadata +8 -8
- data/README +0 -19
- data/lastgroov +0 -12
data/README.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# lastgroov: Scrobble recently played tracks from Grooveshark to Last.fm
|
2
|
+
|
3
|
+
## Installing
|
4
|
+
|
5
|
+
$ gem install lastgroov
|
6
|
+
|
7
|
+
|
8
|
+
## Configuring
|
9
|
+
|
10
|
+
Create last.yml containing:
|
11
|
+
username : lastfm_username
|
12
|
+
password : lastfm_password
|
13
|
+
|
14
|
+
## Executing
|
15
|
+
|
16
|
+
$ ./lastgroov
|
17
|
+
|
18
|
+
## Author
|
19
|
+
|
20
|
+
Himanshu Chhetri : http://nepcoder.com
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/bin/lastgroov
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'lastgroov'
|
7
|
+
require 'highline'
|
8
|
+
require 'highline/import'
|
9
|
+
|
10
|
+
groov_user = ask("Enter Grooveshark username: ") { |q| q.echo = true }
|
11
|
+
user = ask("Enter Last.fm username: ") { |q| q.echo = true }
|
12
|
+
password = ask("Enter Last.fm password: ") { |q| q.echo = false }
|
13
|
+
tracks = ask("How many tracks to scrobble (1-100): ", Integer) { |q| q.in = 1..100 }
|
14
|
+
|
15
|
+
Lastgroov.new(groov_user, user, password, tracks).scrobble!
|
data/lastgroov.gemspec
CHANGED
@@ -5,22 +5,24 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{lastgroov}
|
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 = ["Himanshu Chhetri"]
|
12
|
-
s.date = %q{2010-01-
|
12
|
+
s.date = %q{2010-01-14}
|
13
|
+
s.default_executable = %q{lastgroov}
|
13
14
|
s.description = %q{Now you can scrobble Grooveshark music!}
|
14
15
|
s.email = %q{himanshuchhetri@gmail.com}
|
16
|
+
s.executables = ["lastgroov"]
|
15
17
|
s.extra_rdoc_files = [
|
16
|
-
"README"
|
18
|
+
"README.md"
|
17
19
|
]
|
18
20
|
s.files = [
|
19
21
|
".gitignore",
|
20
|
-
"README",
|
22
|
+
"README.md",
|
21
23
|
"Rakefile",
|
22
24
|
"VERSION",
|
23
|
-
"lastgroov",
|
25
|
+
"bin/lastgroov",
|
24
26
|
"lastgroov.gemspec",
|
25
27
|
"lib/lastgroov.rb"
|
26
28
|
]
|
data/lib/lastgroov.rb
CHANGED
@@ -1,32 +1,37 @@
|
|
1
|
-
# Scrobble recently played tracks from Grooveshark
|
2
|
-
|
3
1
|
require 'rubygems'
|
4
2
|
require 'scrobbler'
|
5
3
|
require 'feedzirra'
|
6
|
-
require 'yaml'
|
7
4
|
|
8
5
|
class Lastgroov
|
9
6
|
|
10
|
-
|
11
|
-
@scrobbles = scrobbles - 1
|
12
|
-
$stderr.puts "Invalid number of scrobbles!" if @scrobbles < 0
|
13
|
-
groov_url = "http://api.grooveshark.com/feeds/1.0/users/"
|
14
|
-
groov_url << groov_user
|
15
|
-
groov_url << "/recent_listens.rss"
|
7
|
+
attr_accessor :tracks, :groov_user, :feed, :auth
|
16
8
|
|
17
|
-
|
9
|
+
def initialize(groov_user, user, password, tracks)
|
10
|
+
@tracks = tracks - 1
|
11
|
+
@groov_user = groov_user
|
12
|
+
@auth = Scrobbler::SimpleAuth.new(:user => user,
|
13
|
+
:password => password)
|
14
|
+
end
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
def parse_rss
|
17
|
+
url = "http://api.grooveshark.com/feeds/1.0/users/"
|
18
|
+
url << @groov_user
|
19
|
+
url << "/recent_listens.rss"
|
20
|
+
@feed = Feedzirra::Feed.fetch_and_parse(url)
|
22
21
|
end
|
23
22
|
|
24
|
-
def
|
23
|
+
def authenticate
|
25
24
|
@auth.handshake!
|
26
|
-
|
25
|
+
end
|
26
|
+
|
27
|
+
def scrobble!
|
28
|
+
parse_rss
|
29
|
+
authenticate
|
30
|
+
|
31
|
+
0.upto(@tracks) do |n|
|
27
32
|
track, artist = @feed.entries[n].title.split(" - ")
|
28
33
|
time = @feed.entries[n].published
|
29
|
-
|
34
|
+
scrobbles = Scrobbler::Scrobble.new(
|
30
35
|
:session_id => @auth.session_id,
|
31
36
|
:submission_url => @auth.submission_url,
|
32
37
|
:artist => artist,
|
@@ -36,9 +41,11 @@ class Lastgroov
|
|
36
41
|
:length=> 300,
|
37
42
|
:track_number => n + 1
|
38
43
|
)
|
39
|
-
|
44
|
+
|
45
|
+
scrobbles.submit!
|
46
|
+
|
40
47
|
puts "#{@feed.entries[n].title}"
|
41
|
-
puts "Scrobbler Submission Status: #{
|
48
|
+
puts "Scrobbler Submission Status: #{scrobbles.status}"
|
42
49
|
end
|
43
50
|
end
|
44
51
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lastgroov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Himanshu Chhetri
|
@@ -9,24 +9,24 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
13
|
-
default_executable:
|
12
|
+
date: 2010-01-14 00:00:00 -06:00
|
13
|
+
default_executable: lastgroov
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: Now you can scrobble Grooveshark music!
|
17
17
|
email: himanshuchhetri@gmail.com
|
18
|
-
executables:
|
19
|
-
|
18
|
+
executables:
|
19
|
+
- lastgroov
|
20
20
|
extensions: []
|
21
21
|
|
22
22
|
extra_rdoc_files:
|
23
|
-
- README
|
23
|
+
- README.md
|
24
24
|
files:
|
25
25
|
- .gitignore
|
26
|
-
- README
|
26
|
+
- README.md
|
27
27
|
- Rakefile
|
28
28
|
- VERSION
|
29
|
-
- lastgroov
|
29
|
+
- bin/lastgroov
|
30
30
|
- lastgroov.gemspec
|
31
31
|
- lib/lastgroov.rb
|
32
32
|
has_rdoc: true
|
data/README
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
Scrobble recently played tracks from Grooveshark to last.fm
|
2
|
-
|
3
|
-
Installing
|
4
|
-
----------
|
5
|
-
$ gem install lastgroov
|
6
|
-
|
7
|
-
Executing
|
8
|
-
---------
|
9
|
-
Create last.yml containing your last.fm login credentials and then execute 'lastgroov'
|
10
|
-
|
11
|
-
$ cat > last.yml
|
12
|
-
username : lastfm_username
|
13
|
-
password : lastfm_password
|
14
|
-
|
15
|
-
$ ./lastgroov
|
16
|
-
|
17
|
-
Author
|
18
|
-
------
|
19
|
-
Himanshu Chhetri : http://nepcoder.com
|
data/lastgroov
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'lib/lastgroov'
|
4
|
-
require 'rubygems'
|
5
|
-
|
6
|
-
print "Enter grooveshark username: "
|
7
|
-
username = gets.strip
|
8
|
-
|
9
|
-
print "Number of recently played tracks to scrobble(upto 100): "
|
10
|
-
scrobbles = gets.to_i
|
11
|
-
|
12
|
-
Lastgroov.new(username, scrobbles).scrobble!
|