def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) return Image(sp, { 'file_id': Uri.from_id('image', data.get('file_id')).to_gid(size=40), 'size': convert(data.get('size'), long), 'width': convert(data.get('width'), long), 'height': convert(data.get('height'), long) }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) return Playlist(sp, { 'uri': Uri.from_uri(data.get('uri')), 'attributes': { 'name': data.get('name') }, 'image': data.get('image') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) return Playlist( sp, { 'uri': Uri.from_uri(data.get('uri')), 'attributes': { 'name': data.get('name') }, 'image': data.get('image') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) uri = Uri.from_id('artist', data.get('id')) return Artist(sp, { 'gid': uri.to_gid(), 'uri': uri, 'name': data.get('name'), 'portrait': cls.get_portraits(data), 'popularity': float(data.get('popularity')) if data.get('popularity') else None, 'restriction': data.get('restrictions') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) return Image( sp, { 'file_id': Uri.from_id('image', data.get('file_id')).to_gid(size=40), 'size': convert(data.get('size'), long), 'width': convert(data.get('width'), long), 'height': convert(data.get('height'), long) }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data, {'artist-id': ('artist-id', 'artist')}) uri = Uri.from_id('track', data.get('id')) return Track( sp, { 'gid': uri.to_gid(), 'uri': uri, 'name': data.get('title'), 'artist': [{ '$source': 'node', 'id': artist.get('artist-id'), 'name': artist.get('artist') } for artist in data.get('artist', [])], 'album': { '$source': 'node', 'id': data.get('album-id'), 'name': data.get('album'), 'artist-id': data.get('album-artist-id'), 'artist-name': data.get('album-artist'), 'cover': data.get('cover'), 'cover-small': data.get('cover-small'), 'cover-large': data.get('cover-large'), }, # TODO year 'number': int(data.get('track-number')), 'duration': int(data.get('length')), 'popularity': float(data.get('popularity')), 'external_id': data.get('external-ids'), 'restriction': data.get('restrictions'), 'file': data.get('files') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data, { 'artist-id': ('artist-id', 'artist') }) uri = Uri.from_id('track', data.get('id')) return Track(sp, { 'gid': uri.to_gid(), 'uri': uri, 'name': data.get('title'), 'artist': [ { '$source': 'node', 'id': artist.get('artist-id'), 'name': artist.get('artist') } for artist in data.get('artist', []) ], 'album': { '$source': 'node', 'id': data.get('album-id'), 'name': data.get('album'), 'artist-id': data.get('album-artist-id'), 'artist-name': data.get('album-artist'), 'cover': data.get('cover'), 'cover-small': data.get('cover-small'), 'cover-large': data.get('cover-large'), }, # TODO year 'number': int(data.get('track-number')), 'duration': int(data.get('length')), 'popularity': float(data.get('popularity')), 'external_id': data.get('external-ids'), 'restriction': data.get('restrictions'), 'file': data.get('files') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) return Album(sp, { 'gid': Uri.from_id('album', data.get('id')).to_gid(), 'name': data.get('name'), 'artist': [ { '$source': 'node', 'id': data.get('artist-id'), 'name': data.get('artist-name') } ], 'type': cls.get_type(data.get('album-type')), 'cover': cls.get_covers(data), 'popularity': convert(data.get('popularity'), float), 'restriction': data.get('restrictions'), 'external_id': data.get('external-ids') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data) uri = Uri.from_id('artist', data.get('id')) return Artist( sp, { 'gid': uri.to_gid(), 'uri': uri, 'name': data.get('name'), 'portrait': cls.get_portraits(data), 'popularity': float(data.get('popularity')) if data.get('popularity') else None, 'restriction': data.get('restrictions') }, parser.XML, parser)
def parse(cls, sp, data, parser): if type(data) is not dict: data = etree_convert(data, {"artist-id": ("artist-id", "artist")}) uri = Uri.from_id("track", data.get("id")) return Track( sp, { "gid": uri.to_gid(), "uri": uri, "name": data.get("title"), "artist": [ {"$source": "node", "id": artist.get("artist-id"), "name": artist.get("artist")} for artist in data.get("artist", []) ], "album": { "$source": "node", "id": data.get("album-id"), "name": data.get("album"), "artist-id": data.get("album-artist-id"), "artist-name": data.get("album-artist"), "cover": data.get("cover"), "cover-small": data.get("cover-small"), "cover-large": data.get("cover-large"), }, # TODO year "number": int(data.get("track-number")), "duration": int(data.get("length")), "popularity": float(data.get("popularity")), "external_id": data.get("external-ids"), "restriction": data.get("restrictions"), "file": data.get("files"), }, parser.XML, parser, )
def from_node(cls, sp, node, types): return cls.from_node_dict(sp, etree_convert(node), types)