rspotify 1.6.1 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 072acdba8d1a732336c1ce986f03694d9279cacf
4
- data.tar.gz: c140a7c62c9b8b73169abe527a21fa86257f4967
3
+ metadata.gz: f1f17aa294f27089ff560a5646618f5dcfee6690
4
+ data.tar.gz: 07b166ed7b15ce4b29e970d35cd939b78c85a0e8
5
5
  SHA512:
6
- metadata.gz: 576e165c656683421697f7fb9a1669ab1118dcdb69c68a9361d41c27281d31056d631bca53ed5947c3a5d6da731512dde0e2a69dc073d0beebc894aec46b1aea
7
- data.tar.gz: 9665298242913480d10d9c80d8a58be669538b73da98029233264aa829e030460a6f72f5769c2de65d7adad38e0d1668cfdbdda92bbf29ad513824aa2f2d2e7d
6
+ metadata.gz: bdea8017b299b4ce48e689355cffc1d0840ca97e28b77e7ea021b4d67798f27d7f10d079efdb43cb473c28189d7fbf739b4b375dd729e2c2d1fd802fc475718d
7
+ data.tar.gz: 5a153f38605d25c63cedaa1f0fcad6f2ec957d20f26c57931fd3fc40751de6eefe4b11c8dc3b66ca62ac62c6582ad16fc63ab6506c79f24dcf8eca33407cc847
data/README.md CHANGED
@@ -27,7 +27,7 @@ Or install it yourself as:
27
27
 
28
28
  ## Usage
29
29
 
30
- Directly access Spotify public data such as albums, tracks, artists and users:
30
+ Directly access Spotify public data such as albums, tracks, artists, playlists and users:
31
31
 
32
32
  ```ruby
33
33
  require 'rspotify'
@@ -55,6 +55,9 @@ do_i_wanna_know.duration_ms #=> 272386
55
55
  do_i_wanna_know.track_number #=> 1
56
56
  do_i_wanna_know.preview_url #=> "https://p.scdn.co/mp3-preview/<id>"
57
57
 
58
+ playlists = RSpotify::Playlist.search('Indie')
59
+ playlists.first.name #=> "The Indie Mix"
60
+
58
61
  # You can search within other types too
59
62
  albums = RSpotify::Album.search('The Wall')
60
63
  tracks = RSpotify::Track.search('Thriller')
@@ -83,14 +86,14 @@ my_tracks = RSpotify::Track.find(ids)
83
86
  my_tracks.size #=> 2
84
87
  ```
85
88
 
86
- Some data require authentication to be accessed, such as playlists. You can easily get your credentials [here](https://developer.spotify.com/my-applications).
89
+ Some data require authentication to be accessed, such as playlists' details. You can easily get your credentials [here](https://developer.spotify.com/my-applications).
87
90
 
88
91
  Then just copy and paste them like so:
89
92
 
90
93
  ```ruby
91
94
  RSpotify.authenticate("<your_client_id>", "<your_client_secret>")
92
95
 
93
- # Now you can access any public playlist and much more
96
+ # Now you can access any public playlist in detail and much more
94
97
 
95
98
  playlist = RSpotify::Playlist.find('wizzler', '00wHcTN0zQiun4xri9pmvX')
96
99
  playlist.name #=> "Movie Soundtrack Masterpieces"
data/lib/rspotify/base.rb CHANGED
@@ -56,10 +56,10 @@ module RSpotify
56
56
  # Returns array of RSpotify objects matching the query, ordered by popularity
57
57
  #
58
58
  # @param query [String] The search query's keywords. See the q description in {https://developer.spotify.com/web-api/search-item here} for details.
59
- # @param types [String] Valid types are: album, artist and track. Separate multiple types with commas.
59
+ # @param types [String] Valid types are: album, artist, track and playlist. Separate multiple types with commas.
60
60
  # @param limit [Integer] Maximum number of objects to return. Maximum: 50. Default: 20.
61
61
  # @param offset [Integer] The index of the first object to return. Use with limit to get the next set of objects. Default: 0.
62
- # @return [Array<Base>]
62
+ # @return [Array<Album>, Array<Artist>, Array<Track>, Array<Playlist>]
63
63
  #
64
64
  # @example
65
65
  # artists = RSpotify::Base.search('Arctic', 'artist')
@@ -29,7 +29,7 @@ module RSpotify
29
29
  Playlist.new json
30
30
  end
31
31
 
32
- # Returns array of playlist objects matching the query
32
+ # Returns array of Playlist objects matching the query
33
33
  #
34
34
  # @param query [String] The search query's keywords. See the q description in {https://developer.spotify.com/web-api/search-item here} for details.
35
35
  # @param limit [Integer] Maximum number of playlists to return. Maximum: 50. Default: 20.
@@ -37,12 +37,12 @@ module RSpotify
37
37
  # @return [Array<Playlist>]
38
38
  #
39
39
  # @example
40
- # playlists = RSpotify::Playlist.search('Soundtrack')
40
+ # playlists = RSpotify::Playlist.search('Indie')
41
41
  # playlists.size #=> 20
42
42
  # playlists.first.class #=> RSpotify::Playlist
43
- # playlists.first.name #=> ""
43
+ # playlists.first.name #=> "The Indie Mix"
44
44
  #
45
- # playlists = RSpotify::Playlist.search('Soundtrack', limit: 10)
45
+ # playlists = RSpotify::Playlist.search('Indie', limit: 10)
46
46
  # playlists.size #=> 10
47
47
  def self.search(query, limit: 20, offset: 0)
48
48
  super(query, 'playlist', limit: limit, offset: offset)
@@ -1,3 +1,3 @@
1
1
  module RSpotify
2
- VERSION = '1.6.1'
2
+ VERSION = '1.7.0'
3
3
  end
@@ -60,6 +60,38 @@ describe RSpotify::Playlist do
60
60
  end
61
61
  end
62
62
 
63
+ describe 'Playlist::search' do
64
+ it 'should search for the right playlists' do
65
+ playlists = VCR.use_cassette('playlist:search:Indie') do
66
+ RSpotify::Playlist.search('Indie')
67
+ end
68
+ expect(playlists) .to be_an Array
69
+ expect(playlists.size) .to eq 20
70
+ expect(playlists.first) .to be_an RSpotify::Playlist
71
+ expect(playlists.map(&:name)) .to include('The Indie Mix', 'Indie Folk', 'Alt/Indie')
72
+ end
73
+
74
+ it 'should accept additional options' do
75
+ playlists = VCR.use_cassette('playlist:search:Indie:limit:10') do
76
+ RSpotify::Playlist.search('Indie', limit: 10)
77
+ end
78
+ expect(playlists.size) .to eq 10
79
+ expect(playlists.map(&:name)) .to include('The Indie Mix', 'Indie Folk')
80
+
81
+ playlists = VCR.use_cassette('playlist:search:Indie:offset:10') do
82
+ RSpotify::Playlist.search('Indie', offset: 10)
83
+ end
84
+ expect(playlists.size) .to eq 20
85
+ expect(playlists.map(&:name)) .to include('Indie Workout', 'Indie Brunch')
86
+
87
+ playlists = VCR.use_cassette('playlist:search:Indie:offset:10:limit:10') do
88
+ RSpotify::Playlist.search('Indie', limit: 10, offset: 10)
89
+ end
90
+ expect(playlists.size) .to eq 10
91
+ expect(playlists.map(&:name)) .to include('Infinite Indie')
92
+ end
93
+ end
94
+
63
95
  describe 'Playlist#tracks' do
64
96
  it 'should fetch more tracks correctly' do
65
97
  tracks = VCR.use_cassette('playlist:tracks:118430647:starred') do
@@ -0,0 +1,113 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spotify.com/v1/search?q=Indie&type=playlist&limit=20&offset=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ server:
22
+ - nginx
23
+ date:
24
+ - Wed, 12 Nov 2014 21:45:01 GMT
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ transfer-encoding:
28
+ - chunked
29
+ connection:
30
+ - keep-alive
31
+ keep-alive:
32
+ - timeout=600
33
+ vary:
34
+ - Accept-Encoding
35
+ cache-control:
36
+ - public, max-age=7200
37
+ access-control-allow-headers:
38
+ - Accept, Authorization, Origin, Content-Type
39
+ access-control-allow-origin:
40
+ - "*"
41
+ access-control-max-age:
42
+ - '604800'
43
+ access-control-allow-methods:
44
+ - GET, POST, OPTIONS, PUT, DELETE
45
+ access-control-allow-credentials:
46
+ - 'true'
47
+ x-content-type-options:
48
+ - nosniff
49
+ strict-transport-security:
50
+ - max-age=31536000;
51
+ content-encoding:
52
+ - gzip
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: !binary |-
56
+ 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
110
+ DQY/kD9++/E/8EK7Sh1OAAA=
111
+ http_version: '1.1'
112
+ recorded_at: Wed, 12 Nov 2014 21:45:01 GMT
113
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,89 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spotify.com/v1/search?q=Indie&type=playlist&limit=10&offset=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ server:
22
+ - nginx
23
+ date:
24
+ - Wed, 12 Nov 2014 21:45:01 GMT
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ transfer-encoding:
28
+ - chunked
29
+ connection:
30
+ - keep-alive
31
+ keep-alive:
32
+ - timeout=600
33
+ vary:
34
+ - Accept-Encoding
35
+ cache-control:
36
+ - public, max-age=7200
37
+ access-control-allow-headers:
38
+ - Accept, Authorization, Origin, Content-Type
39
+ access-control-allow-origin:
40
+ - "*"
41
+ access-control-max-age:
42
+ - '604800'
43
+ access-control-allow-methods:
44
+ - GET, POST, OPTIONS, PUT, DELETE
45
+ access-control-allow-credentials:
46
+ - 'true'
47
+ x-content-type-options:
48
+ - nosniff
49
+ strict-transport-security:
50
+ - max-age=31536000;
51
+ content-encoding:
52
+ - gzip
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: !binary |-
56
+ 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
87
+ http_version: '1.1'
88
+ recorded_at: Wed, 12 Nov 2014 21:45:02 GMT
89
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,125 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spotify.com/v1/search?q=Indie&type=playlist&limit=20&offset=10
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ server:
22
+ - nginx
23
+ date:
24
+ - Wed, 12 Nov 2014 21:45:02 GMT
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ transfer-encoding:
28
+ - chunked
29
+ connection:
30
+ - keep-alive
31
+ keep-alive:
32
+ - timeout=600
33
+ vary:
34
+ - Accept-Encoding
35
+ cache-control:
36
+ - public, max-age=7200
37
+ access-control-allow-headers:
38
+ - Accept, Authorization, Origin, Content-Type
39
+ access-control-allow-origin:
40
+ - "*"
41
+ access-control-max-age:
42
+ - '604800'
43
+ access-control-allow-methods:
44
+ - GET, POST, OPTIONS, PUT, DELETE
45
+ access-control-allow-credentials:
46
+ - 'true'
47
+ x-content-type-options:
48
+ - nosniff
49
+ strict-transport-security:
50
+ - max-age=31536000;
51
+ content-encoding:
52
+ - gzip
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: !binary |-
56
+ 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
122
+ VycuExrN7nKDa/smBfI///Lz/2kbni7GUQAA
123
+ http_version: '1.1'
124
+ recorded_at: Wed, 12 Nov 2014 21:45:02 GMT
125
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spotify.com/v1/search?q=Indie&type=playlist&limit=10&offset=10
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ server:
22
+ - nginx
23
+ date:
24
+ - Wed, 12 Nov 2014 21:45:02 GMT
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ transfer-encoding:
28
+ - chunked
29
+ connection:
30
+ - keep-alive
31
+ keep-alive:
32
+ - timeout=600
33
+ vary:
34
+ - Accept-Encoding
35
+ cache-control:
36
+ - public, max-age=7200
37
+ access-control-allow-headers:
38
+ - Accept, Authorization, Origin, Content-Type
39
+ access-control-allow-origin:
40
+ - "*"
41
+ access-control-max-age:
42
+ - '604800'
43
+ access-control-allow-methods:
44
+ - GET, POST, OPTIONS, PUT, DELETE
45
+ access-control-allow-credentials:
46
+ - 'true'
47
+ x-content-type-options:
48
+ - nosniff
49
+ strict-transport-security:
50
+ - max-age=31536000;
51
+ content-encoding:
52
+ - gzip
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: !binary |-
56
+ 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
88
+ FGf1EigAAA==
89
+ http_version: '1.1'
90
+ recorded_at: Wed, 12 Nov 2014 21:45:03 GMT
91
+ recorded_with: VCR 2.9.3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspotify
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Sad
@@ -174,6 +174,10 @@ files:
174
174
  - spec/vcr_cassettes/authenticate_5ac1cda2ad354aeaa1ad2693d33bb98c.yml
175
175
  - spec/vcr_cassettes/playlist_find_118430647_starred.yml
176
176
  - spec/vcr_cassettes/playlist_find_wizzler_00wHcTN0zQiun4xri9pmvX.yml
177
+ - spec/vcr_cassettes/playlist_search_Indie.yml
178
+ - spec/vcr_cassettes/playlist_search_Indie_limit_10.yml
179
+ - spec/vcr_cassettes/playlist_search_Indie_offset_10.yml
180
+ - spec/vcr_cassettes/playlist_search_Indie_offset_10_limit_10.yml
177
181
  - spec/vcr_cassettes/playlist_tracks_118430647_starred.yml
178
182
  - spec/vcr_cassettes/track_find_3jfr0TF6DQcOLat8gGn7E2.yml
179
183
  - spec/vcr_cassettes/track_find_4oI9kesyxHUr8fqiLd6uO9.yml
@@ -236,6 +240,10 @@ test_files:
236
240
  - spec/vcr_cassettes/authenticate_5ac1cda2ad354aeaa1ad2693d33bb98c.yml
237
241
  - spec/vcr_cassettes/playlist_find_118430647_starred.yml
238
242
  - spec/vcr_cassettes/playlist_find_wizzler_00wHcTN0zQiun4xri9pmvX.yml
243
+ - spec/vcr_cassettes/playlist_search_Indie.yml
244
+ - spec/vcr_cassettes/playlist_search_Indie_limit_10.yml
245
+ - spec/vcr_cassettes/playlist_search_Indie_offset_10.yml
246
+ - spec/vcr_cassettes/playlist_search_Indie_offset_10_limit_10.yml
239
247
  - spec/vcr_cassettes/playlist_tracks_118430647_starred.yml
240
248
  - spec/vcr_cassettes/track_find_3jfr0TF6DQcOLat8gGn7E2.yml
241
249
  - spec/vcr_cassettes/track_find_4oI9kesyxHUr8fqiLd6uO9.yml