spotify.v1.browse.categories module
from spotify import values
from spotify.object.image import Image
from spotify.page import Page
from spotify.resource import Instance, Resource
from spotify.v1.browse.categories.playlist import PlaylistList
class CategoryInstance(Instance):
def __init__(self, version, properties):
super(CategoryInstance, self).__init__(version, properties)
self._context = CategoryContext(self.version, self.id)
@property
def href(self):
return self.property('href')
@property
def icons(self):
return [Image.from_json(icon) for icon in self.property('icons')]
@property
def id(self):
return self.property('id')
@property
def name(self):
return self.property('name')
@property
def playlists(self):
return self._context.playlists
class CategoryContext(Resource):
def __init__(self, version, id):
super(CategoryContext, self).__init__(version)
self.id = id
self._playlists = None
@property
def playlists(self):
if not self._playlists:
self._playlists = PlaylistList(self.version, self.id)
return self._playlists
def fetch(self):
response = self.version.request('GET', '/browse/categories/{}'.format(self.id))
return CategoryInstance(self.version, response.json())
class CategoryList(Resource):
def __init__(self, version):
super(CategoryList, self).__init__(version)
def list(self, country=values.UNSET, locale=values.UNSET, limit=values.UNSET, offset=values.UNSET):
params = values.of({
'country': country,
'locale': locale,
'limit': limit,
'offset': offset
})
response = self.version.request('GET', '/browse/categories', params=params)
return CategoryPage(self.version, response.json()['categories'], 'items')
class CategoryPage(Page):
@property
def instance_class(self):
return CategoryInstance
Classes
class CategoryContext
class CategoryContext(Resource):
def __init__(self, version, id):
super(CategoryContext, self).__init__(version)
self.id = id
self._playlists = None
@property
def playlists(self):
if not self._playlists:
self._playlists = PlaylistList(self.version, self.id)
return self._playlists
def fetch(self):
response = self.version.request('GET', '/browse/categories/{}'.format(self.id))
return CategoryInstance(self.version, response.json())
Ancestors (in MRO)
- CategoryContext
- spotify.resource.Resource
- __builtin__.object
Instance variables
var id
var playlists
Methods
def __init__(
self, version, id)
def __init__(self, version, id):
super(CategoryContext, self).__init__(version)
self.id = id
self._playlists = None
def fetch(
self)
def fetch(self):
response = self.version.request('GET', '/browse/categories/{}'.format(self.id))
return CategoryInstance(self.version, response.json())
class CategoryInstance
class CategoryInstance(Instance):
def __init__(self, version, properties):
super(CategoryInstance, self).__init__(version, properties)
self._context = CategoryContext(self.version, self.id)
@property
def href(self):
return self.property('href')
@property
def icons(self):
return [Image.from_json(icon) for icon in self.property('icons')]
@property
def id(self):
return self.property('id')
@property
def name(self):
return self.property('name')
@property
def playlists(self):
return self._context.playlists
Ancestors (in MRO)
- CategoryInstance
- spotify.resource.Instance
- spotify.resource.Resource
- __builtin__.object
Instance variables
var href
var icons
var id
var name
var playlists
Methods
def __init__(
self, version, properties)
def __init__(self, version, properties):
super(CategoryInstance, self).__init__(version, properties)
self._context = CategoryContext(self.version, self.id)
def property(
self, name, default=None)
def property(self, name, default=None):
return self.properties.get(name, default)
class CategoryList
class CategoryList(Resource):
def __init__(self, version):
super(CategoryList, self).__init__(version)
def list(self, country=values.UNSET, locale=values.UNSET, limit=values.UNSET, offset=values.UNSET):
params = values.of({
'country': country,
'locale': locale,
'limit': limit,
'offset': offset
})
response = self.version.request('GET', '/browse/categories', params=params)
return CategoryPage(self.version, response.json()['categories'], 'items')
Ancestors (in MRO)
- CategoryList
- spotify.resource.Resource
- __builtin__.object
Methods
def __init__(
self, version)
def __init__(self, version):
super(CategoryList, self).__init__(version)
def list(
self, country='UNSET', locale='UNSET', limit='UNSET', offset='UNSET')
def list(self, country=values.UNSET, locale=values.UNSET, limit=values.UNSET, offset=values.UNSET):
params = values.of({
'country': country,
'locale': locale,
'limit': limit,
'offset': offset
})
response = self.version.request('GET', '/browse/categories', params=params)
return CategoryPage(self.version, response.json()['categories'], 'items')
class CategoryPage
class CategoryPage(Page):
@property
def instance_class(self):
return CategoryInstance
Ancestors (in MRO)
- CategoryPage
- 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
)