Top

spotify.v1.me.album module

from spotify import values
from spotify.page import Page
from spotify.resource import Instance, Resource


class SavedAlbum(Instance):

    @property
    def added_at(self):
        return self.property('added_at')

    @property
    def album(self):
        from spotify.v1.album import AlbumInstance
        return AlbumInstance(self.version, self.property('album'))


class AlbumList(Resource):

    def list(self, limit=values.UNSET, offset=values.UNSET, market=values.UNSET):
        params = values.of({
            'limit': limit,
            'offset': offset,
            'market': market
        })
        response = self.version.request('GET', '/me/albums', params=params)
        return AlbumPage(self.version, response.json(), 'items')

    def save(self, ids=values.UNSET):
        data = values.of({
            'ids': ids
        })
        response = self.version.request('PUT', '/me/albums', data=data)
        return response.status_code == 201

    def remove(self, ids=values.UNSET):
        data = values.of({
            'ids': ids
        })
        response = self.version.request('DELETE', '/me/albums', data=data)
        return response.status_code == 200

    def contains(self, ids=values.UNSET):
        params = values.of({
            'ids': ','.join(ids)
        })
        response = self.version.request('GET', '/me/albums/contains', params=params)
        return response.json()


class AlbumPage(Page):

    @property
    def instance_class(self):
        return SavedAlbum

Classes

class AlbumList

class AlbumList(Resource):

    def list(self, limit=values.UNSET, offset=values.UNSET, market=values.UNSET):
        params = values.of({
            'limit': limit,
            'offset': offset,
            'market': market
        })
        response = self.version.request('GET', '/me/albums', params=params)
        return AlbumPage(self.version, response.json(), 'items')

    def save(self, ids=values.UNSET):
        data = values.of({
            'ids': ids
        })
        response = self.version.request('PUT', '/me/albums', data=data)
        return response.status_code == 201

    def remove(self, ids=values.UNSET):
        data = values.of({
            'ids': ids
        })
        response = self.version.request('DELETE', '/me/albums', data=data)
        return response.status_code == 200

    def contains(self, ids=values.UNSET):
        params = values.of({
            'ids': ','.join(ids)
        })
        response = self.version.request('GET', '/me/albums/contains', params=params)
        return response.json()

Ancestors (in MRO)

  • AlbumList
  • spotify.resource.Resource
  • __builtin__.object

Methods

def __init__(

self, version)

def __init__(self, version):
    self.version = version

def contains(

self, ids='UNSET')

def contains(self, ids=values.UNSET):
    params = values.of({
        'ids': ','.join(ids)
    })
    response = self.version.request('GET', '/me/albums/contains', params=params)
    return response.json()

def list(

self, limit='UNSET', offset='UNSET', market='UNSET')

def list(self, limit=values.UNSET, offset=values.UNSET, market=values.UNSET):
    params = values.of({
        'limit': limit,
        'offset': offset,
        'market': market
    })
    response = self.version.request('GET', '/me/albums', params=params)
    return AlbumPage(self.version, response.json(), 'items')

def remove(

self, ids='UNSET')

def remove(self, ids=values.UNSET):
    data = values.of({
        'ids': ids
    })
    response = self.version.request('DELETE', '/me/albums', data=data)
    return response.status_code == 200

def save(

self, ids='UNSET')

def save(self, ids=values.UNSET):
    data = values.of({
        'ids': ids
    })
    response = self.version.request('PUT', '/me/albums', data=data)
    return response.status_code == 201

class AlbumPage

class AlbumPage(Page):

    @property
    def instance_class(self):
        return SavedAlbum

Ancestors (in MRO)

  • AlbumPage
  • spotify.page.Page
  • spotify.resource.Resource
  • __builtin__.object

Instance variables

var instance_class

Methods

def __init__(

self, version, data, key)

def __init__(self, version, data, key):
    super(Page, self).__init__(version)
    self._key = key
    self._items = iter([self.instance_class(self.version, item) for item in data.get(key, [])])
    del data[key]
    self._meta = data

def has_next_page(

self)

def has_next_page(self):
    return 'next' in self._meta and self._meta['next'] is not None

def next_page(

self)

def next_page(self):
    response = self.version.request(self._meta['next'])
    return self.__class__(
        self.version,
        response.json(),
        self._key
    )

class SavedAlbum

class SavedAlbum(Instance):

    @property
    def added_at(self):
        return self.property('added_at')

    @property
    def album(self):
        from spotify.v1.album import AlbumInstance
        return AlbumInstance(self.version, self.property('album'))

Ancestors (in MRO)

  • SavedAlbum
  • spotify.resource.Instance
  • spotify.resource.Resource
  • __builtin__.object

Instance variables

var added_at

var album

Methods

def __init__(

self, version, properties)

def __init__(self, version, properties):
    super(Instance, self).__init__(version)
    self.properties = properties

def property(

self, name, default=None)

def property(self, name, default=None):
    return self.properties.get(name, default)