rspotify 2.4.1 → 2.5.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.
- checksums.yaml +4 -4
- data/lib/rspotify/album.rb +2 -0
- data/lib/rspotify/player.rb +20 -0
- data/lib/rspotify/version.rb +1 -1
- data/spec/lib/rspotify/album_spec.rb +2 -2
- data/spec/vcr_cassettes/album_find_5bU1XKYxHhEwukllT20xtk.yml +172 -81
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e109369a08f44ff26605781f94c334eabf9adebb
|
4
|
+
data.tar.gz: 052a974c33f640fd724830308517f55a87496f8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38acfebceb65b64f604ec374f25798d7c8a825e3ca8b4e04b76c0f51a3c8d60e1ba44d6263cad3422dacbd8b9b58b7fdf28a2d6ee58eae224fb5d4e07d254d22
|
7
|
+
data.tar.gz: dcb54349b342b67acd931ca7ac57e7ef9d02b30d958f56b898db88388aa9407729b1cbead35307142a996346e61ae8f5a05e912f8629947c0cc71293ef3c213c
|
data/lib/rspotify/album.rb
CHANGED
@@ -7,6 +7,7 @@ module RSpotify
|
|
7
7
|
# @attr [Hash] external_ids Known external IDs for the album
|
8
8
|
# @attr [Array<String>] genres A list of the genres used to classify the album. If not yet classified, the array is empty
|
9
9
|
# @attr [Array<Hash>] images The cover art for the album in various sizes, widest first
|
10
|
+
# @attr [String] label The label for the album
|
10
11
|
# @attr [String] name The name of the album
|
11
12
|
# @attr [Integer] popularity The popularity of the album. The value will be between 0 and 100, with 100 being the most popular
|
12
13
|
# @attr [String] release_date The date the album was first released, for example "1981-12-15". Depending on the precision, it might be shown as "1981" or "1981-12"
|
@@ -77,6 +78,7 @@ module RSpotify
|
|
77
78
|
@external_ids = options['external_ids']
|
78
79
|
@genres = options['genres']
|
79
80
|
@images = options['images']
|
81
|
+
@label = options['label']
|
80
82
|
@name = options['name']
|
81
83
|
@popularity = options['popularity']
|
82
84
|
@release_date = options['release_date']
|
data/lib/rspotify/player.rb
CHANGED
@@ -80,6 +80,26 @@ module RSpotify
|
|
80
80
|
User.oauth_put(@user.id, url, {})
|
81
81
|
end
|
82
82
|
|
83
|
+
# Skip User’s Playback To Next Track
|
84
|
+
#
|
85
|
+
# @example
|
86
|
+
# player = user.player
|
87
|
+
# player.next
|
88
|
+
def next
|
89
|
+
url = 'me/player/next'
|
90
|
+
User.oauth_post(@user.id, url, {})
|
91
|
+
end
|
92
|
+
|
93
|
+
# Skip User’s Playback To Previous Track
|
94
|
+
#
|
95
|
+
# @example
|
96
|
+
# player = user.player
|
97
|
+
# player.previous
|
98
|
+
def previous
|
99
|
+
url = 'me/player/previous'
|
100
|
+
User.oauth_post(@user.id, url, {})
|
101
|
+
end
|
102
|
+
|
83
103
|
# Update the user's currently active player volume
|
84
104
|
#
|
85
105
|
# @example
|
data/lib/rspotify/version.rb
CHANGED
@@ -11,14 +11,14 @@ describe RSpotify::Album do
|
|
11
11
|
|
12
12
|
it 'should find album with correct attributes' do
|
13
13
|
expect(@album.album_type) .to eq 'album'
|
14
|
-
expect(@album.available_markets) .to include *%w(AD AT BE BG CA EE ES FR GR MC TW US)
|
15
14
|
expect(@album.copyrights) .to include ({'text' => '2013 Domino Recording Co Ltd', 'type' => 'C'})
|
16
15
|
expect(@album.external_ids['upc']) .to eq '887828031795'
|
17
16
|
expect(@album.external_urls['spotify']) .to eq 'https://open.spotify.com/album/5bU1XKYxHhEwukllT20xtk'
|
18
17
|
expect(@album.genres) .to be_an Array
|
19
18
|
expect(@album.href) .to eq 'https://api.spotify.com/v1/albums/5bU1XKYxHhEwukllT20xtk'
|
20
19
|
expect(@album.id) .to eq '5bU1XKYxHhEwukllT20xtk'
|
21
|
-
expect(@album.images) .to include ({'height' => 640, 'width' => 640, 'url' => 'https://i.scdn.co/image/
|
20
|
+
expect(@album.images) .to include ({'height' => 640, 'width' => 640, 'url' => 'https://i.scdn.co/image/486391b05384f2299a4c01b7bd8d5b855f20def9'})
|
21
|
+
expect(@album.label) .to eq 'Domino Recording Co'
|
22
22
|
expect(@album.name) .to eq 'AM'
|
23
23
|
expect(@album.popularity) .to be > 0
|
24
24
|
expect(@album.release_date) .to eq '2013-09-09'
|
@@ -7,102 +7,193 @@ http_interactions:
|
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
|
-
|
11
|
-
- "
|
12
|
-
|
10
|
+
Accept:
|
11
|
+
- "*/*"
|
12
|
+
Accept-Encoding:
|
13
13
|
- gzip, deflate
|
14
|
-
|
15
|
-
-
|
14
|
+
User-Agent:
|
15
|
+
- rest-client/2.0.2 (darwin16.1.0 x86_64) ruby/2.3.3p222
|
16
|
+
Authorization:
|
17
|
+
- Bearer BQBj_AiSFlKCkNIMbCWEYjuJLl6n76QmVsHU6MGDgTUBLZqNiKZ4ALs6Kvm6ulbsW9O81JDdIHyXBndXyhUOxg
|
18
|
+
Host:
|
19
|
+
- api.spotify.com
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 401
|
23
|
+
message: Unauthorized
|
24
|
+
headers:
|
25
|
+
Content-Type:
|
26
|
+
- application/json
|
27
|
+
- application/json
|
28
|
+
Www-Authenticate:
|
29
|
+
- Bearer realm="spotify", error="invalid_token", error_description="The access
|
30
|
+
token expired"
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- "*"
|
33
|
+
Access-Control-Allow-Headers:
|
34
|
+
- Accept, Authorization, Origin, Content-Type, Retry-After
|
35
|
+
Access-Control-Allow-Methods:
|
36
|
+
- GET, POST, OPTIONS, PUT, DELETE, PATCH
|
37
|
+
Access-Control-Allow-Credentials:
|
38
|
+
- 'true'
|
39
|
+
Access-Control-Max-Age:
|
40
|
+
- '604800'
|
41
|
+
Content-Encoding:
|
42
|
+
- gzip
|
43
|
+
Date:
|
44
|
+
- Thu, 28 Feb 2019 14:30:18 GMT
|
45
|
+
Via:
|
46
|
+
- 1.1 google
|
47
|
+
Alt-Svc:
|
48
|
+
- clear
|
49
|
+
Transfer-Encoding:
|
50
|
+
- chunked
|
51
|
+
body:
|
52
|
+
encoding: ASCII-8BIT
|
53
|
+
string: !binary |-
|
54
|
+
H4sIAAAAAAAAAKrmUlBQSi0qyi9SslKoBnKA3OKSxJLSYiDfxMBQByKUm1pc
|
55
|
+
nJieChRTCslIVUhMTgYKKJTkZ6fmKaRWFGQWpaYoAVXWctUCAAAA//8DAFAZ
|
56
|
+
BolRAAAA
|
57
|
+
http_version:
|
58
|
+
recorded_at: Thu, 28 Feb 2019 14:30:28 GMT
|
59
|
+
- request:
|
60
|
+
method: post
|
61
|
+
uri: https://accounts.spotify.com/api/token
|
62
|
+
body:
|
63
|
+
encoding: UTF-8
|
64
|
+
string: grant_type=client_credentials
|
65
|
+
headers:
|
66
|
+
Accept:
|
67
|
+
- "*/*"
|
68
|
+
Accept-Encoding:
|
69
|
+
- gzip, deflate
|
70
|
+
User-Agent:
|
71
|
+
- rest-client/2.0.2 (darwin16.1.0 x86_64) ruby/2.3.3p222
|
72
|
+
Authorization:
|
73
|
+
- Basic NWFjMWNkYTJhZDM1NGFlYWExYWQyNjkzZDMzYmI5OGM6MTU1ZmMwMzhhODU4NDA2NzliNTVhMTgyMmVmMzZiOWI=
|
74
|
+
Content-Length:
|
75
|
+
- '29'
|
76
|
+
Content-Type:
|
77
|
+
- application/x-www-form-urlencoded
|
78
|
+
Host:
|
79
|
+
- accounts.spotify.com
|
16
80
|
response:
|
17
81
|
status:
|
18
82
|
code: 200
|
19
83
|
message: OK
|
20
84
|
headers:
|
21
|
-
|
85
|
+
Server:
|
22
86
|
- nginx
|
23
|
-
|
24
|
-
-
|
25
|
-
|
26
|
-
- application/json
|
27
|
-
|
87
|
+
Date:
|
88
|
+
- Thu, 28 Feb 2019 14:30:18 GMT
|
89
|
+
Content-Type:
|
90
|
+
- application/json
|
91
|
+
Transfer-Encoding:
|
28
92
|
- chunked
|
29
|
-
|
93
|
+
Connection:
|
30
94
|
- keep-alive
|
31
|
-
|
95
|
+
Keep-Alive:
|
32
96
|
- timeout=600
|
33
|
-
|
97
|
+
Vary:
|
34
98
|
- Accept-Encoding
|
35
|
-
|
99
|
+
X-Content-Type-Options:
|
100
|
+
- nosniff
|
101
|
+
Strict-Transport-Security:
|
102
|
+
- max-age=31536000
|
103
|
+
Content-Encoding:
|
104
|
+
- gzip
|
105
|
+
body:
|
106
|
+
encoding: ASCII-8BIT
|
107
|
+
string: !binary |-
|
108
|
+
H4sIAAAAAAAAAx2NTQuCQBQA/8s7K4iCULcNyTYUyTLRi8jyxI/VJ7uLGdF/
|
109
|
+
z7wOw8wHaiFQ68rQgBMc4XRjrYyKqJ6WQxjmsdMbEa88z/hADBuPBONjYttu
|
110
|
+
+3qWlNxL9Sh89EwwZ0FzlTK9uKMq0p4kzxdahuzMwIK9Xpn3jP8F1grVRnGd
|
111
|
+
O4W66rax5zuOBVrQrsD3B4ZH4qaZAAAA
|
112
|
+
http_version:
|
113
|
+
recorded_at: Thu, 28 Feb 2019 14:30:29 GMT
|
114
|
+
- request:
|
115
|
+
method: get
|
116
|
+
uri: https://api.spotify.com/v1/albums/5bU1XKYxHhEwukllT20xtk
|
117
|
+
body:
|
118
|
+
encoding: US-ASCII
|
119
|
+
string: ''
|
120
|
+
headers:
|
121
|
+
Accept:
|
122
|
+
- "*/*"
|
123
|
+
Accept-Encoding:
|
124
|
+
- gzip, deflate
|
125
|
+
User-Agent:
|
126
|
+
- rest-client/2.0.2 (darwin16.1.0 x86_64) ruby/2.3.3p222
|
127
|
+
Authorization:
|
128
|
+
- Bearer BQAhlLYLanv9GGWM0jtcMxIWUIkoAef3ocAImO--2hwVZoOSZrTY6e3tDpUDfJllRH2mrYRjolIWvovkUFA
|
129
|
+
Host:
|
130
|
+
- api.spotify.com
|
131
|
+
response:
|
132
|
+
status:
|
133
|
+
code: 200
|
134
|
+
message: OK
|
135
|
+
headers:
|
136
|
+
Content-Type:
|
137
|
+
- application/json; charset=utf-8
|
138
|
+
Cache-Control:
|
36
139
|
- public, max-age=7200
|
37
|
-
|
38
|
-
- Accept, Authorization, Origin, Content-Type
|
39
|
-
access-control-allow-origin:
|
140
|
+
Access-Control-Allow-Origin:
|
40
141
|
- "*"
|
41
|
-
|
42
|
-
-
|
43
|
-
|
44
|
-
- GET, POST, OPTIONS, PUT, DELETE
|
45
|
-
|
142
|
+
Access-Control-Allow-Headers:
|
143
|
+
- Accept, Authorization, Origin, Content-Type, Retry-After
|
144
|
+
Access-Control-Allow-Methods:
|
145
|
+
- GET, POST, OPTIONS, PUT, DELETE, PATCH
|
146
|
+
Access-Control-Allow-Credentials:
|
46
147
|
- 'true'
|
47
|
-
|
48
|
-
-
|
49
|
-
|
50
|
-
- max-age=31536000;
|
51
|
-
content-encoding:
|
148
|
+
Access-Control-Max-Age:
|
149
|
+
- '604800'
|
150
|
+
Content-Encoding:
|
52
151
|
- gzip
|
152
|
+
Date:
|
153
|
+
- Thu, 28 Feb 2019 14:30:19 GMT
|
154
|
+
Via:
|
155
|
+
- 1.1 google
|
156
|
+
Alt-Svc:
|
157
|
+
- clear
|
158
|
+
Transfer-Encoding:
|
159
|
+
- chunked
|
53
160
|
body:
|
54
161
|
encoding: ASCII-8BIT
|
55
162
|
string: !binary |-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
idX42o7s1sBI6WXhZYMtoKTdEYeF3R5HfGM0DO37SPuNEIJFQMIgDKb1z26i
|
94
|
-
YEvCq6GJLbxaeL1NeFEI0eR110+HF7pmZ3SPXoIrcXJ41vlyk59dn70MXg0q
|
95
|
-
Z+H1nFgNr9P+3W/K+5yOvYMkvvM2eRx7+9o77eukqP0t017X7jVeeo+FzeoT
|
96
|
-
RaWvAkVUwDi33wQAyKb3KaJaY0GA0sETD5aTxWaxyKyhC1q4tXB7m3ALMcDV
|
97
|
-
fny3wfEn7xDDYPzXx7i7c2k6eotcZ+wiNMMX7rF4XOUs3Bos12I13HoJH3oH
|
98
|
-
49w7MDbNv2x8JhD1/SAE9rwCg0IAbfdXKOkDI6UhVNjozH4zPml+uISTYVmM
|
99
|
-
YQ0tbRnWMuxNMsweTPLpKwZoEH4JOqPBt+Ob3Z0t0eslhzdd6E61Lf2WskHl
|
100
|
-
LMOeE6sZtptobbNjxYGgWsdiyTG7Q18hhkKjiQJSGB9xEEpqQkolZYFP7GE6
|
101
|
-
39dTmzhmny+n8pWL8auhlS2/Wn69SX5Bhu1Jx9fLjoGc6tPbL9tXAxZ2xseX
|
102
|
-
LP8LmW8v4leDyll+PSf2cJeFPWe0oYvnyWxpitn9FJhRiJBSFBmfcRQqu/WV
|
103
|
-
2cy/JiFExKdaYDy1j/YHii27W7+hrSXFyoPLNuB2RyqLM1P+/aHYpDpUnYzj
|
104
|
-
uOy/lfIAZiF1L+RYno7d4cspwTzNuTuBBZG14/bLTB00LM4Vu+XgxxOGxaW1
|
105
|
-
huPEv3z/D4j14jaSQAAA
|
106
|
-
http_version: '1.1'
|
107
|
-
recorded_at: Mon, 08 Dec 2014 23:23:07 GMT
|
108
|
-
recorded_with: VCR 2.9.3
|
163
|
+
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
|
197
|
+
http_version:
|
198
|
+
recorded_at: Thu, 28 Feb 2019 14:30:29 GMT
|
199
|
+
recorded_with: VCR 3.0.3
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspotify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guilherme Sad
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth-oauth2
|