grooveshark-ruby 0.1.0 → 0.1.1

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.
Files changed (4) hide show
  1. data/README.md +133 -91
  2. data/VERSION +1 -1
  3. data/grooveshark-ruby.gemspec +74 -0
  4. metadata +4 -3
data/README.md CHANGED
@@ -1,91 +1,133 @@
1
- grooveshark-ruby
2
-
3
- a = Grooveshark.new(key, secret)
4
- a.authenticate('username', 'password')
5
- /* do things */
6
- a.logout
7
-
8
- Added by myself and required to create a token
9
-
10
- makeToken
11
-
12
- Working
13
-
14
- startSession
15
- authenticate
16
- authenticateUser
17
- authenticateToken
18
- logout
19
- getCountry
20
- getUserPlaylists
21
- getUserPlaylistsSubscribed
22
- getUserFavoriteSongs
23
- removeUserFavoriteSongs
24
- getUserInfo
25
- unsubscribePlaylist
26
- getPlaylist
27
- getServiceDescription
28
- pingService
29
- getPlaylistInfo
30
- getSongIDFromTinysongBase62
31
- getSongURLFromTinysongBase62
32
- getSongURLFromSongID
33
- getPlaylistURLFromPlaylistID
34
- getTinysongURLFromSongID
35
- getUserLibrarySongs
36
- removeUserLibrarySongs
37
- deletePlaylist
38
- getUserIDFromUsername
39
- getAlbumsInfo
40
- getAlbumSongs
41
- getSongsInfo
42
- getDoesAlbumExist
43
- getDoesSongExist
44
- getDoesArtistExist
45
- getArtistPopularSongs
46
- getArtistAlbums
47
-
48
- Sorta working
49
-
50
- addUserFavoriteSong (sometimes returns false, which seems to be fixed by adding or removing []-brackets)
51
- getPopularSongsToday (setting limit to anything doesn't work)
52
- getPopularSongsMonth (setting limit to anything doesn't work)
53
- createPlaylist (songIDs has to be passed in as an array, i.e. [songIDs], even if it's a single song)
54
- getArtistsInfo (returns an empty array unless argument is passed in as an array)
55
- getArtistVerifiedAlbums (returns a list of albums, most of them with the property `"IsVerified"=>false`??)
56
-
57
- Not working
58
-
59
- addUserLibrarySongs (returns `"success"=> true` but doesn't actually add songs to anything)
60
- subscribePlaylist (just returns `"success"=> false` with no explanation?)
61
- undeletePlaylist (just returns `"success"=> false` with no explanation?)
62
-
63
- Not enough permissions with standard API key
64
-
65
- getAutoplaySong
66
- getAutoplayTags
67
- startAutoplayTag
68
- startAutoplay
69
- removeVoteUpAutoplaySong
70
- voteUpAutoplaySong
71
- addSongToAutoplay
72
- removeSongFromAutoplay
73
- removeVoteDownAutoplaySong
74
- voteDownAutoplaySong
75
- getUserPlaylistsByUserID
76
- getUserInfoFromUserID
77
- getSimilarArtists
78
- registerUser
79
- getUserSubscriptionDetails
80
-
81
- Not tested
82
-
83
- getAutocompleteSearchResults
84
- getSubscriberStreamKey
85
- markStreamKeyOver30Secs
86
- markSongComplete
87
- getTrialInfo
88
- createTrial
89
- setPlaylistSongs
90
- getPlaylistSongs
91
- renamePlaylist
1
+ # Grooveshark Ruby
2
+
3
+ Grooveshark Ruby is an unofficial wrapper for the [Grooveshark API](http://developers.grooveshark.com/docs/public_api/v3/).
4
+
5
+ ## Getting started
6
+
7
+ You can install Grooveshark Ruby with the following command,
8
+
9
+ `gem install grooveshark-ruby`
10
+
11
+ Before you can invoke any of the methods, make sure to require the gem,
12
+
13
+ `require 'grooveshark-ruby`
14
+
15
+ Most of the commands seen here require an API key which can be requested through the website. Please refer to the API for information on which methods require a key. Start a new session with,
16
+
17
+ `derp = Grooveshark.new(key, secret)`
18
+
19
+ If you do not have a key or secret, simply use `''` for both of them. Again, I have no idea which methods require a key, so you're best to simply request one. There are 3 different ways to authenticate a user, though the website seems to recommend:
20
+
21
+ `derp.authenticate('username', 'password')`
22
+
23
+ From this point you can make requests to the Grooveshark server. For example,
24
+
25
+ `derp.getPopularSongsToday`
26
+
27
+ will return a list of the day's popular songs.
28
+
29
+ As always, don't forget to logout,
30
+
31
+ `a.logout`
32
+
33
+
34
+ ## Does it work or not? A list of methods
35
+
36
+ The lists below are a near-complete collection of methods offered by the [API](http://developers.grooveshark.com/docs/public_api/v3/). The method names are verbatim with the API page. Methods that aren't included on the website are not included in this gem for now - presumably because they don't work properly. The full list can be found by invoking `getServiceDescription`.
37
+
38
+ For more information on the methods and their parameters, please refer to the API.
39
+
40
+ #### Added by myself and required to create a token
41
+
42
+ - makeToken(username, password)
43
+
44
+ #### Working
45
+
46
+ - startSession (automatically invoked with Grooveshark.new)
47
+ - authenticate
48
+ - authenticateUser
49
+ - authenticateToken
50
+ - logout
51
+ - getCountry
52
+ - getUserPlaylists
53
+ - getUserPlaylistsSubscribed
54
+ - getUserFavoriteSongs
55
+ - removeUserFavoriteSongs
56
+ - getUserInfo
57
+ - unsubscribePlaylist
58
+ - getPlaylist
59
+ - getServiceDescription
60
+ - pingService
61
+ - getPlaylistInfo
62
+ - getSongIDFromTinysongBase62
63
+ - getSongURLFromTinysongBase62
64
+ - getSongURLFromSongID
65
+ - getPlaylistURLFromPlaylistID
66
+ - getTinysongURLFromSongID
67
+ - getUserLibrarySongs
68
+ - removeUserLibrarySongs
69
+ - deletePlaylist
70
+ - getUserIDFromUsername
71
+ - getAlbumsInfo
72
+ - getAlbumSongs
73
+ - getSongsInfo
74
+ - getDoesAlbumExist
75
+ - getDoesSongExist
76
+ - getDoesArtistExist
77
+ - getArtistPopularSongs
78
+ - getArtistAlbums
79
+
80
+ #### Sorta working
81
+
82
+ These methods are working, but with awkward glitches.
83
+
84
+ - addUserFavoriteSong (sometimes returns false, which seems to be fixed by adding or removing []-brackets)
85
+ - getPopularSongsToday (setting limit to anything doesn't work)
86
+ - getPopularSongsMonth (setting limit to anything doesn't work)
87
+ - createPlaylist (songIDs has to be passed in as an array, i.e. [songIDs], even if it's a single song)
88
+ - getArtistsInfo (returns an empty array unless argument is passed in as an array)
89
+ - getArtistVerifiedAlbums (returns a list of albums, most of them with the property `"IsVerified"=>false`??)
90
+
91
+ #### Not working
92
+
93
+ The following methods are not working at all and it is unclear whether this is the fault of the wrapper or the API itself. More testing is required.
94
+
95
+ - addUserLibrarySongs (returns `"success"=> true` but doesn't actually add songs to anything)
96
+ - subscribePlaylist (just returns `"success"=> false` with no explanation?)
97
+ - undeletePlaylist (just returns `"success"=> false` with no explanation?)
98
+
99
+ #### Not enough permissions with standard API key
100
+
101
+ These methods are not aloud by standard API key holders. See the [API](http://developers.grooveshark.com/docs/public_api/v3/) for information on how you can increase your permissions
102
+
103
+ - getAutoplaySong
104
+ - getAutoplayTags
105
+ - startAutoplayTag
106
+ - startAutoplay
107
+ - removeVoteUpAutoplaySong
108
+ - voteUpAutoplaySong
109
+ - addSongToAutoplay
110
+ - removeSongFromAutoplay
111
+ - removeVoteDownAutoplaySong
112
+ - voteDownAutoplaySong
113
+ - getUserPlaylistsByUserID
114
+ - getUserInfoFromUserID
115
+ - getSimilarArtists
116
+ - registerUser
117
+ - getUserSubscriptionDetails
118
+
119
+ #### Not tested
120
+
121
+ - getAutocompleteSearchResults
122
+ - getSubscriberStreamKey
123
+ - markStreamKeyOver30Secs
124
+ - markSongComplete
125
+ - getTrialInfo
126
+ - createTrial
127
+ - setPlaylistSongs
128
+ - getPlaylistSongs
129
+ - renamePlaylist
130
+
131
+ ## Credits
132
+
133
+ Much of the code to post requests to the grooveshark server is based off of [a now outdated grooveshark gem by sosedoff](https://github.com/sosedoff/grooveshark/).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -0,0 +1,74 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "grooveshark-ruby"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Gabriel Scholz"]
12
+ s.date = "2012-10-12"
13
+ s.description = "An easy-to-use ruby wrapper for the Grooveshark API"
14
+ s.email = "scholz.gabe@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "LICENSE.txt",
24
+ "README.md",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "grooveshark-ruby.gemspec",
28
+ "lib/grooveshark-ruby.rb",
29
+ "lib/grooveshark-ruby/autocomplete.rb",
30
+ "lib/grooveshark-ruby/autoplay.rb",
31
+ "lib/grooveshark-ruby/core.rb",
32
+ "lib/grooveshark-ruby/new.rb",
33
+ "lib/grooveshark-ruby/recs.rb",
34
+ "lib/grooveshark-ruby/register.rb",
35
+ "lib/grooveshark-ruby/request.rb",
36
+ "lib/grooveshark-ruby/search.rb",
37
+ "lib/grooveshark-ruby/sessions.rb",
38
+ "lib/grooveshark-ruby/subscriberstreams.rb",
39
+ "lib/grooveshark-ruby/tinysong.rb",
40
+ "lib/grooveshark-ruby/trials.rb",
41
+ "lib/grooveshark-ruby/urls.rb",
42
+ "lib/grooveshark-ruby/users.rb"
43
+ ]
44
+ s.homepage = "http://github.com/garbles/grooveshark-ruby"
45
+ s.licenses = ["MIT"]
46
+ s.require_paths = ["lib"]
47
+ s.rubygems_version = "1.8.24"
48
+ s.summary = "An easy-to-use ruby wrapper for the Grooveshark API"
49
+
50
+ if s.respond_to? :specification_version then
51
+ s.specification_version = 3
52
+
53
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
55
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
56
+ s.add_development_dependency(%q<bundler>, [">= 0"])
57
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
58
+ s.add_development_dependency(%q<rcov>, [">= 0"])
59
+ else
60
+ s.add_dependency(%q<shoulda>, [">= 0"])
61
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
62
+ s.add_dependency(%q<bundler>, [">= 0"])
63
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
64
+ s.add_dependency(%q<rcov>, [">= 0"])
65
+ end
66
+ else
67
+ s.add_dependency(%q<shoulda>, [">= 0"])
68
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
69
+ s.add_dependency(%q<bundler>, [">= 0"])
70
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
71
+ s.add_dependency(%q<rcov>, [">= 0"])
72
+ end
73
+ end
74
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grooveshark-ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gabriel Scholz
@@ -107,6 +107,7 @@ files:
107
107
  - README.md
108
108
  - Rakefile
109
109
  - VERSION
110
+ - grooveshark-ruby.gemspec
110
111
  - lib/grooveshark-ruby.rb
111
112
  - lib/grooveshark-ruby/autocomplete.rb
112
113
  - lib/grooveshark-ruby/autoplay.rb