Top

spotify.v1.me.player.recently_played module

from spotify import values
from spotify.object.context import Context
from spotify.page import Page
from spotify.resource import Instance, Resource


class RecentlyPlayedInstance(Instance):

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

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

    @property
    def context(self):
        return Context.from_json(self.property('context'))


class RecentlyPlayedList(Resource):

    def list(self, limit=values.UNSET, after=values.UNSET, before=values.UNSET):
        params = values.of({
            'limit': limit,
            'after': after,
            'before': before
        })
        response = self.version.request('GET', '/me/player/recently-played', params=params)
        return RecentlyPlayedPage(self.version, response.json(), 'items')


class RecentlyPlayedPage(Page):

    @property
    def instance_class(self):
        return RecentlyPlayedInstance

Classes

class RecentlyPlayedInstance

class RecentlyPlayedInstance(Instance):

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

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

    @property
    def context(self):
        return Context.from_json(self.property('context'))

Ancestors (in MRO)

Instance variables

var context

var played_at

var track

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)

class RecentlyPlayedList

class RecentlyPlayedList(Resource):

    def list(self, limit=values.UNSET, after=values.UNSET, before=values.UNSET):
        params = values.of({
            'limit': limit,
            'after': after,
            'before': before
        })
        response = self.version.request('GET', '/me/player/recently-played', params=params)
        return RecentlyPlayedPage(self.version, response.json(), 'items')

Ancestors (in MRO)

Methods

def __init__(

self, version)

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

def list(

self, limit='UNSET', after='UNSET', before='UNSET')

def list(self, limit=values.UNSET, after=values.UNSET, before=values.UNSET):
    params = values.of({
        'limit': limit,
        'after': after,
        'before': before
    })
    response = self.version.request('GET', '/me/player/recently-played', params=params)
    return RecentlyPlayedPage(self.version, response.json(), 'items')

class RecentlyPlayedPage

class RecentlyPlayedPage(Page):

    @property
    def instance_class(self):
        return RecentlyPlayedInstance

Ancestors (in MRO)

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
    )