rspotify 2.6.1 → 2.9.2

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: 59c34bf71f214c47a5119f269b79451204658dd8
4
- data.tar.gz: b6b7e1e0adb4b392bf3a829d200820a434427142
2
+ SHA256:
3
+ metadata.gz: c165c5081e4cca893c47dc2cd8f4f14575ab64aee6afd554124c3b0b36f3d9b6
4
+ data.tar.gz: 851456edf9def81e75378588216daf83145afbc4aa5ea53d6f3efdb75bff3d73
5
5
  SHA512:
6
- metadata.gz: 885ac9c2f2b2218e5f31c48ffa9585e5f98496457fb90ab0e5ded962fa26ac2220bc196ae2d7a85258372dc2c31ff598a5a22c46f379ab4a18c33362ebbf352f
7
- data.tar.gz: 66265e27d689adb88a2336b2be6e724c1e2e49fe4506bf6c84fb8dca801b4148cadfc7a72a89a91d9fac10c081f54100951d874e91146c84831643512abd2437
6
+ metadata.gz: f060beaba6b8c8995b23952d503703943dd89d765f4c23224dc7a4a05d34849f30a4ab551aea64c0f9bbd193014d524dd593f99cb5a9099a4c71084ecce8e3b0
7
+ data.tar.gz: 3b877fc32c3ec4caf9aa31c72e7b4541e4b0bd432469e74ec6b33765eea1c90fa005bfc478dd70152b0da9260b98699c756541397fa1686d9bdc9d6f6de77607
@@ -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']
@@ -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,20 +139,27 @@ 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.
140
146
  #
141
147
  # @param limit [Integer] Optional. The number of entities to return. Default: 20. Minimum: 1. Maximum: 50.
148
+ # @param after [String] Optional. A Unix timestamp in milliseconds. Returns all items after (but not including) this cursor position. If after is specified, before must not be specified.
149
+ # @param before [String] Optional. A Unix timestamp in milliseconds. Returns all items before (but not including) this cursor position. If before is specified, after must not be specified.
142
150
  # @return [Array<Track>]
143
151
  #
144
152
  # @example
145
153
  # recently_played = user.recently_played
146
154
  # recently_played.size #=> 20
147
155
  # recently_played.first.name #=> "Ice to Never"
148
- def recently_played(limit: 20)
156
+ # user.recently_played(limit: 50)
157
+ # user.recently_played(after: '1572561234', before: '1572562369')
158
+ def recently_played(limit: 20, after: nil, before: nil)
149
159
  url = "me/player/recently-played?limit=#{limit}"
160
+ url << "&after=#{after}" if after
161
+ url << "&before=#{before}" if before
162
+
150
163
  response = RSpotify.resolve_auth_request(@id, url)
151
164
  return response if RSpotify.raw_response
152
165
 
@@ -300,14 +313,16 @@ module RSpotify
300
313
  #
301
314
  # @param limit [Integer] Maximum number of tracks to return. Maximum: 50. Minimum: 1. Default: 20.
302
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}.
303
317
  # @return [Array<Track>]
304
318
  #
305
319
  # @example
306
320
  # tracks = user.saved_tracks
307
321
  # tracks.size #=> 20
308
322
  # tracks.first.name #=> "Do I Wanna Know?"
309
- def saved_tracks(limit: 20, offset: 0)
323
+ def saved_tracks(limit: 20, offset: 0, market: nil)
310
324
  url = "me/tracks?limit=#{limit}&offset=#{offset}"
325
+ url << "&market=#{market}" if market
311
326
  response = User.oauth_get(@id, url)
312
327
  json = RSpotify.raw_response ? JSON.parse(response) : response
313
328
 
@@ -375,14 +390,16 @@ module RSpotify
375
390
  #
376
391
  # @param limit [Integer] Maximum number of albums to return. Maximum: 50. Minimum: 1. Default: 20.
377
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}.
378
394
  # @return [Array<Album>]
379
395
  #
380
396
  # @example
381
397
  # albums = user.saved_albums
382
398
  # albums.size #=> 20
383
399
  # albums.first.name #=> "Launeddas"
384
- def saved_albums(limit: 20, offset: 0)
400
+ def saved_albums(limit: 20, offset: 0, market: nil)
385
401
  url = "me/albums?limit=#{limit}&offset=#{offset}"
402
+ url << "&market=#{market}" if market
386
403
  response = User.oauth_get(@id, url)
387
404
  json = RSpotify.raw_response ? JSON.parse(response) : response
388
405
 
@@ -1,3 +1,3 @@
1
1
  module RSpotify
2
- VERSION = '2.6.1'.freeze
2
+ VERSION = '2.9.2'.freeze
3
3
  end
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.6.1
4
+ version: 2.9.2
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-04 00:00:00.000000000 Z
11
+ date: 2020-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth-oauth2
@@ -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: