rspotify 1.15.5 → 1.16.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: a93128fa50a4191e8d52b20c6cb567cdbe4215a0
4
- data.tar.gz: e8add7787638abd2258e878402ec5570026c9a62
3
+ metadata.gz: 8a88de811476fbb0042abe48a1a7ff99ed6d3e30
4
+ data.tar.gz: e1f261ed242e3a7abc2cf0f5b1aae6c05495f04e
5
5
  SHA512:
6
- metadata.gz: d9db6786d6234198aba5c14416a18e08c187d70033ae0a99b18daae560d51aac91a59a8309fc352788d560f746094922c58c92c61443944e9a62c850092f90bd
7
- data.tar.gz: 51e330b4b6ea9858c29e0c1dd4b395e634f8ff9560a2b0d7d2edd5c529924ad75202f0442bb7c4a782bc78f36ac4cc29f1125c6acb7b67e862d45d20bb1e0586
6
+ metadata.gz: 58a7634fff6edcbe1d5b9f73c9c5723f49d3c446b16bff93a4e93dbe3e98bf8dd422e77ef671cbe797ae54913a05d15142e994d09d7eef71d88e79509006dd4f
7
+ data.tar.gz: 24200d848d08744d17002d3215ca67d2efa6c54cefd708bdad33ac3ffef98476ac769315555c239249a02436d402fad8d2c871aa10d8cd7b0959812ac732851c
data/README.md CHANGED
@@ -186,6 +186,11 @@ class UsersController < ApplicationController
186
186
  spotify_user.saved_tracks.size #=> 20
187
187
  spotify_user.remove_tracks!(tracks)
188
188
 
189
+ albums = RSpotify::Album.search('launeddas')
190
+ spotify_user.save_albums!(albums)
191
+ spotify_user.saved_albums.size #=> 10
192
+ spotify_user.remove_albums!(albums)
193
+
189
194
  # Use Spotify Follow features
190
195
  spotify_user.follow(playlist)
191
196
  spotify_user.follows?(artists)
@@ -286,6 +286,78 @@ module RSpotify
286
286
  User.oauth_get(@id, url)
287
287
  end
288
288
 
289
+ # Remove albums from the user’s “Your Music” library.
290
+ #
291
+ # @param albums [Array<Album>] The albums to remove. Maximum: 50.
292
+ # @return [Array<Album>] The albums removed.
293
+ #
294
+ # @example
295
+ # albums = user.saved_albums
296
+ #
297
+ # user.saved_albums.size #=> 20
298
+ # user.remove_albums!(albums)
299
+ # user.saved_albums.size #=> 0
300
+ def remove_albums!(albums)
301
+ albums_ids = albums.map(&:id)
302
+ url = "me/albums?ids=#{albums_ids.join ','}"
303
+ User.oauth_delete(@id, url)
304
+ albums
305
+ end
306
+
307
+ # Save albums to the user’s “Your Music” library.
308
+ #
309
+ # @param albums [Array<Album>] The albums to save. Maximum: 50.
310
+ # @return [Array<Album>] The albums saved.
311
+ #
312
+ # @example
313
+ # albums = RSpotify::Album.search('launeddas')
314
+ #
315
+ # user.saved_albums.size #=> 0
316
+ # user.save_albums!(albums)
317
+ # user.saved_albums.size #=> 10
318
+ def save_albums!(albums)
319
+ albums_ids = albums.map(&:id)
320
+ url = "me/albums"
321
+ request_body = albums_ids.inspect
322
+ User.oauth_put(@id, url, request_body)
323
+ albums
324
+ end
325
+
326
+ # Returns the albums saved in the Spotify user’s “Your Music” library. ** Includes albums whose tracks you saved
327
+ #
328
+ # @param limit [Integer] Maximum number of albums to return. Maximum: 50. Minimum: 1. Default: 20.
329
+ # @param offset [Integer] The index of the first album to return. Use with limit to get the next set of albums. Default: 0.
330
+ # @return [Array<Album>]
331
+ #
332
+ # @example
333
+ # albums = user.saved_albums
334
+ # albums.size #=> 20
335
+ # albums.first.name #=> "Launeddas"
336
+ def saved_albums(limit: 20, offset: 0)
337
+ url = "me/albums?limit=#{limit}&offset=#{offset}"
338
+ response = User.oauth_get(@id, url)
339
+ json = RSpotify.raw_response ? JSON.parse(response) : response
340
+
341
+ albums = json['items'].select { |i| i['album'] }
342
+
343
+ return response if RSpotify.raw_response
344
+ albums.map { |a| Album.new a['album'] }
345
+ end
346
+
347
+ # Check if albums are already saved in the Spotify user’s “Your Music” library. ** Only returns true if the album was saved via me/albums, not if you saved each track individually.
348
+ #
349
+ # @param albums [Array<Album>] The albums to check. Maximum: 50.
350
+ # @return [Array<Boolean>] Array of booleans, in the same order in which the albums were specified.
351
+ #
352
+ # @example
353
+ # albums = RSpotify::Album.search('launeddas')
354
+ # user.saved_albums?(albums) #=> [true, false, true...]
355
+ def saved_albums?(albums)
356
+ albums_ids = albums.map(&:id)
357
+ url = "me/albums/contains?ids=#{albums_ids.join ','}"
358
+ User.oauth_get(@id, url)
359
+ end
360
+
289
361
  # Returns a hash containing all user attributes
290
362
  def to_hash
291
363
  pairs = instance_variables.map do |var|
@@ -1,3 +1,3 @@
1
1
  module RSpotify
2
- VERSION = '1.15.5'
2
+ VERSION = '1.16.0'
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: 1.15.5
4
+ version: 1.16.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: 2015-11-08 00:00:00.000000000 Z
11
+ date: 2015-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth-oauth2