rspotify 2.7.0 → 2.10.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 +5 -5
- data/.github/FUNDING.yml +1 -0
- data/lib/rspotify/base.rb +3 -3
- data/lib/rspotify/connection.rb +1 -1
- data/lib/rspotify/player.rb +17 -0
- data/lib/rspotify/playlist.rb +2 -2
- data/lib/rspotify/user.rb +16 -6
- data/lib/rspotify/version.rb +1 -1
- data/rspotify.gemspec +1 -1
- metadata +12 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d2f3f63fb69d7fdea96a15bab0671af1bf613156372db785367769cd0ef57e5f
|
4
|
+
data.tar.gz: 84de02a228ae2466a06115d51cbee51a5e305249b2ee41966ff526101557e525
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c62e8935afb2c34db840a322d225be296b6be4b39011f4f7e42eeaabe0f8b4fde08ed1c6ba26d66fe10127988e5ac799e3facceffb4799cec5044b0adbd91a32
|
7
|
+
data.tar.gz: e68cede2897703d01e27fd9ce6154fc9a6dca1a39540c905f66449acc1c8c2a95b47af132689019095be90f01678de21acd6fbd323405b0c8a16a4e88da574ba
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
custom: https://www.buymeacoffee.com/guilhermesad
|
data/lib/rspotify/base.rb
CHANGED
@@ -125,9 +125,9 @@ module RSpotify
|
|
125
125
|
|
126
126
|
# Generate an embed code for an album, artist or track.
|
127
127
|
# @param [Hash] options
|
128
|
-
# @option options [
|
129
|
-
# @option options [
|
130
|
-
# @option options [
|
128
|
+
# @option options [Integer] :width the width of the frame
|
129
|
+
# @option options [Integer] :height the height of the frame
|
130
|
+
# @option options [Integer] :frameborder the frameborder of the frame
|
131
131
|
# @option options [Boolean] :allowtransparency toggle frame transparency
|
132
132
|
# @option options [nil|String|Symbol] :view specific view option for iframe
|
133
133
|
# @option options [nil|String|Symbol] :theme specific theme option for iframe
|
data/lib/rspotify/connection.rb
CHANGED
@@ -67,7 +67,7 @@ module RSpotify
|
|
67
67
|
rescue RestClient::Unauthorized => e
|
68
68
|
raise e if request_was_user_authenticated?(*params)
|
69
69
|
|
70
|
-
raise MissingAuthentication unless @
|
70
|
+
raise MissingAuthentication unless @client_id && @client_secret
|
71
71
|
|
72
72
|
authenticate(@client_id, @client_secret)
|
73
73
|
|
data/lib/rspotify/player.rb
CHANGED
@@ -9,6 +9,8 @@ module RSpotify
|
|
9
9
|
@progress = options['progress_ms']
|
10
10
|
@is_playing = options['is_playing']
|
11
11
|
@currently_playing_type = options['currently_playing_type']
|
12
|
+
@context_type = options.dig('context', 'type')
|
13
|
+
@context_uri = options.dig('context', 'uri')
|
12
14
|
|
13
15
|
@track = if options['track']
|
14
16
|
Track.new options['track']
|
@@ -71,6 +73,21 @@ module RSpotify
|
|
71
73
|
User.oauth_put(@user.id, url, params.to_json)
|
72
74
|
end
|
73
75
|
|
76
|
+
# Add an item to the end of the user’s current playback queue
|
77
|
+
# If `device_id` is not passed, the currently active spotify app will be triggered
|
78
|
+
#
|
79
|
+
# @param [String] device_id the ID of the device to set the repeat state on.
|
80
|
+
# @param [String] uri the spotify uri of the track to be queued
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# player = user.player
|
84
|
+
# player.queue("spotify:track:4iV5W9uYEdYUVa79Axb7Rh")
|
85
|
+
def queue(device_id = nil, uri)
|
86
|
+
url = "me/player/queue?uri=#{uri}"
|
87
|
+
url = device_id.nil? ? url : "#{url}&device_id=#{device_id}"
|
88
|
+
User.oauth_post(@user.id, url, {})
|
89
|
+
end
|
90
|
+
|
74
91
|
# Toggle the current user's player repeat status.
|
75
92
|
# If `device_id` is not passed, the currently active spotify app will be triggered.
|
76
93
|
# If `state` is not passed, the currently active context will be set to repeat.
|
data/lib/rspotify/playlist.rb
CHANGED
@@ -303,7 +303,7 @@ module RSpotify
|
|
303
303
|
# positions = [0,3,8]
|
304
304
|
# playlist.remove_tracks!(positions, snapshot_id: '0ZvtH...')
|
305
305
|
def remove_tracks!(tracks, snapshot_id: nil)
|
306
|
-
positions = tracks if tracks.first.is_a?
|
306
|
+
positions = tracks if tracks.first.is_a? Integer
|
307
307
|
|
308
308
|
tracks = tracks.map do |track|
|
309
309
|
next { uri: track.uri } if track.is_a? Track
|
@@ -390,7 +390,7 @@ module RSpotify
|
|
390
390
|
def replace_tracks!(tracks)
|
391
391
|
track_uris = tracks.map(&:uri).join(',')
|
392
392
|
url = "#{@path}/tracks?uris=#{track_uris}"
|
393
|
-
User.oauth_put(@owner.id, url, {})
|
393
|
+
User.oauth_put(@owner.id, url, {}.to_json)
|
394
394
|
|
395
395
|
@total = tracks.size
|
396
396
|
@tracks_cache = nil
|
data/lib/rspotify/user.rb
CHANGED
@@ -104,6 +104,8 @@ module RSpotify
|
|
104
104
|
# Creates a playlist in user's Spotify account. This method is only available when the current
|
105
105
|
# user has granted access to the *playlist-modify-public* and *playlist-modify-private* scopes.
|
106
106
|
#
|
107
|
+
# @note To create a collaborative playlist the public option must be set to false.
|
108
|
+
#
|
107
109
|
# @param name [String] The name for the new playlist
|
108
110
|
# @param public [Boolean] Whether the playlist is public or private. Default: true
|
109
111
|
# @return [Playlist]
|
@@ -116,10 +118,14 @@ module RSpotify
|
|
116
118
|
# playlist = user.create_playlist!('my-second-playlist', public: false)
|
117
119
|
# playlist.name #=> "my-second-playlist"
|
118
120
|
# playlist.public #=> false
|
119
|
-
def create_playlist!(name, public: true)
|
121
|
+
def create_playlist!(name, description: nil, public: true, collaborative: false)
|
120
122
|
url = "users/#{@id}/playlists"
|
121
|
-
request_data = {
|
122
|
-
|
123
|
+
request_data = {
|
124
|
+
name: name,
|
125
|
+
public: public,
|
126
|
+
description: description,
|
127
|
+
collaborative: collaborative
|
128
|
+
}.to_json
|
123
129
|
response = User.oauth_post(@id, url, request_data)
|
124
130
|
return response if RSpotify.raw_response
|
125
131
|
Playlist.new response
|
@@ -133,7 +139,7 @@ module RSpotify
|
|
133
139
|
url = "me/player"
|
134
140
|
response = User.oauth_get(@id, url)
|
135
141
|
return response if RSpotify.raw_response
|
136
|
-
response
|
142
|
+
response ? Player.new(self, response) : Player.new(self)
|
137
143
|
end
|
138
144
|
|
139
145
|
# Get the current user’s recently played tracks. Requires the *user-read-recently-played* scope.
|
@@ -307,14 +313,16 @@ module RSpotify
|
|
307
313
|
#
|
308
314
|
# @param limit [Integer] Maximum number of tracks to return. Maximum: 50. Minimum: 1. Default: 20.
|
309
315
|
# @param offset [Integer] The index of the first track to return. Use with limit to get the next set of tracks. Default: 0.
|
316
|
+
# @param market [String] Optional. An {http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2 country code}.
|
310
317
|
# @return [Array<Track>]
|
311
318
|
#
|
312
319
|
# @example
|
313
320
|
# tracks = user.saved_tracks
|
314
321
|
# tracks.size #=> 20
|
315
322
|
# tracks.first.name #=> "Do I Wanna Know?"
|
316
|
-
def saved_tracks(limit: 20, offset: 0)
|
323
|
+
def saved_tracks(limit: 20, offset: 0, market: nil)
|
317
324
|
url = "me/tracks?limit=#{limit}&offset=#{offset}"
|
325
|
+
url << "&market=#{market}" if market
|
318
326
|
response = User.oauth_get(@id, url)
|
319
327
|
json = RSpotify.raw_response ? JSON.parse(response) : response
|
320
328
|
|
@@ -382,14 +390,16 @@ module RSpotify
|
|
382
390
|
#
|
383
391
|
# @param limit [Integer] Maximum number of albums to return. Maximum: 50. Minimum: 1. Default: 20.
|
384
392
|
# @param offset [Integer] The index of the first album to return. Use with limit to get the next set of albums. Default: 0.
|
393
|
+
# @param market [String] Optional. An {http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2 country code}.
|
385
394
|
# @return [Array<Album>]
|
386
395
|
#
|
387
396
|
# @example
|
388
397
|
# albums = user.saved_albums
|
389
398
|
# albums.size #=> 20
|
390
399
|
# albums.first.name #=> "Launeddas"
|
391
|
-
def saved_albums(limit: 20, offset: 0)
|
400
|
+
def saved_albums(limit: 20, offset: 0, market: nil)
|
392
401
|
url = "me/albums?limit=#{limit}&offset=#{offset}"
|
402
|
+
url << "&market=#{market}" if market
|
393
403
|
response = User.oauth_get(@id, url)
|
394
404
|
json = RSpotify.raw_response ? JSON.parse(response) : response
|
395
405
|
|
data/lib/rspotify/version.rb
CHANGED
data/rspotify.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(/^spec\//)
|
17
17
|
spec.require_paths = ['lib']
|
18
18
|
|
19
|
-
spec.add_dependency 'omniauth-oauth2', '
|
19
|
+
spec.add_dependency 'omniauth-oauth2', '>= 1.6'
|
20
20
|
spec.add_dependency 'rest-client', '~> 2.0.2'
|
21
21
|
spec.add_dependency 'addressable', '~> 2.5.2'
|
22
22
|
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspotify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guilherme Sad
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth-oauth2
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: '1.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '3.0'
|
139
|
-
description:
|
139
|
+
description:
|
140
140
|
email:
|
141
141
|
- gorgulhoguilherme@gmail.com
|
142
142
|
executables: []
|
@@ -144,6 +144,7 @@ extensions: []
|
|
144
144
|
extra_rdoc_files: []
|
145
145
|
files:
|
146
146
|
- ".editorconfig"
|
147
|
+
- ".github/FUNDING.yml"
|
147
148
|
- ".gitignore"
|
148
149
|
- ".rspec"
|
149
150
|
- ".travis.yml"
|
@@ -260,7 +261,7 @@ homepage: http://rubygems.org/gems/rspotify
|
|
260
261
|
licenses:
|
261
262
|
- MIT
|
262
263
|
metadata: {}
|
263
|
-
post_install_message:
|
264
|
+
post_install_message:
|
264
265
|
rdoc_options: []
|
265
266
|
require_paths:
|
266
267
|
- lib
|
@@ -275,9 +276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
275
276
|
- !ruby/object:Gem::Version
|
276
277
|
version: '0'
|
277
278
|
requirements: []
|
278
|
-
|
279
|
-
|
280
|
-
signing_key:
|
279
|
+
rubygems_version: 3.0.6
|
280
|
+
signing_key:
|
281
281
|
specification_version: 4
|
282
282
|
summary: A ruby wrapper for the Spotify Web API
|
283
283
|
test_files:
|
@@ -368,4 +368,3 @@ test_files:
|
|
368
368
|
- spec/vcr_cassettes/user_find_spotify.yml
|
369
369
|
- spec/vcr_cassettes/user_find_wizzler.yml
|
370
370
|
- spec/vcr_cassettes/user_wizzler_playlists_limit_20_offset_0.yml
|
371
|
-
has_rdoc:
|