Source code for spotify.models.common
[docs]class Image:
"""An object representing a Spotify image resource.
Attributes
----------
height : :class:`str`
The height of the image.
width : :class:`str`
The width of the image.
url : :class:`str`
The URL of the image.
"""
__slots__ = ("height", "width", "url")
def __init__(self, *, height: str, width: str, url: str):
self.height = height
self.width = width
self.url = url
def __repr__(self):
return f"<spotify.Image: {self.url!r} (width: {self.width!r}, height: {self.height!r})>"
def __eq__(self, other):
return type(self) is type(other) and self.url == other.url
[docs]class Context:
"""A Spotify Context.
Attributes
----------
type : str
The object type, e.g. “artist”, “playlist”, “album”.
href : str
A link to the Web API endpoint providing full details of the track.
external_urls : str
External URLs for this context.
uri : str
The Spotify URI for the context.
"""
__slots__ = ("external_urls", "type", "href", "uri")
def __init__(self, data):
self.external_urls = data.get("external_urls")
self.type = data.get("type")
self.href = data.get("href")
self.uri = data.get("uri")
def __repr__(self):
return f"<spotify.Context: {self.uri!r}>"
def __eq__(self, other):
return type(self) is type(other) and self.uri == other.uri
[docs]class Device:
"""A Spotify Users device.
Attributes
----------
id : str
The device ID
name : int
The name of the device.
type : str
A Device type, such as “Computer”, “Smartphone” or “Speaker”.
volume : int
The current volume in percent. This may be null.
is_active : bool
if this device is the currently active device.
is_restricted : bool
Whether controlling this device is restricted.
At present if this is “true” then no Web API commands will be accepted by this device.
is_private_session : bool
If this device is currently in a private session.
"""
__slots__ = (
"id",
"name",
"type",
"volume",
"is_active",
"is_restricted",
"is_private_session",
)
def __init__(self, data):
self.id = data.get("id") # pylint: disable=invalid-name
self.name = data.get("name")
self.type = data.get("type")
self.volume = data.get("volume_percent")
self.is_active = data.get("is_active")
self.is_restricted = data.get("is_restricted")
self.is_private_session = data.get("is_private_session")
def __eq__(self, other):
return type(self) is type(other) and self.id == other.id
def __repr__(self):
return f"<spotify.Device: {(self.name or self.id)!r}>"
def __str__(self):
return self.id