rspotify 2.7.0 → 2.10.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
- SHA1:
3
- metadata.gz: 3a2e674f79d628114b4e4e3c97006abfef2048d5
4
- data.tar.gz: 25c75aa60824f65221f693faf413428f1ed01f9e
2
+ SHA256:
3
+ metadata.gz: d2f3f63fb69d7fdea96a15bab0671af1bf613156372db785367769cd0ef57e5f
4
+ data.tar.gz: 84de02a228ae2466a06115d51cbee51a5e305249b2ee41966ff526101557e525
5
5
  SHA512:
6
- metadata.gz: b6cba50aae45497ca2c4d01b5eda78a41d38673ca5c3f61b83432c2afebf12c2377b7dc2555a03f5c3b02e25316b1bd7b77066c2f8cccedd3c807170dd71e9b6
7
- data.tar.gz: a1289477f05cc11072f2212eadcc24c6095e8bf7fa8e792bed6f2b71c29dce5ddf0ecc0cd1908f4794db31acb5e24e7d0bbe87fc574cc3509c7c180cb2c0fb64
6
+ metadata.gz: c62e8935afb2c34db840a322d225be296b6be4b39011f4f7e42eeaabe0f8b4fde08ed1c6ba26d66fe10127988e5ac799e3facceffb4799cec5044b0adbd91a32
7
+ data.tar.gz: e68cede2897703d01e27fd9ce6154fc9a6dca1a39540c905f66449acc1c8c2a95b47af132689019095be90f01678de21acd6fbd323405b0c8a16a4e88da574ba
@@ -0,0 +1 @@
1
+ custom: https://www.buymeacoffee.com/guilhermesad
@@ -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 [Fixnum] :width the width of the frame
129
- # @option options [Fixnum] :height the height of the frame
130
- # @option options [Fixnum] :frameborder the frameborder of the frame
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
@@ -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 @client_token
70
+ raise MissingAuthentication unless @client_id && @client_secret
71
71
 
72
72
  authenticate(@client_id, @client_secret)
73
73
 
@@ -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.
@@ -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? Fixnum
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
@@ -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 = { name: name, public: public }.to_json
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.present? ? Player.new(self, response) : nil
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
 
@@ -1,3 +1,3 @@
1
1
  module RSpotify
2
- VERSION = '2.7.0'.freeze
2
+ VERSION = '2.10.0'.freeze
3
3
  end
@@ -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', '~> 1.5.0'
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.7.0
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: 2019-11-12 00:00:00.000000000 Z
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.5.0
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.5.0
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
- rubyforge_project:
279
- rubygems_version: 2.6.8
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: