Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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,
        )
Пример #11
0
 def from_node(cls, sp, node, types):
     return cls.from_node_dict(sp, etree_convert(node), types)
Пример #12
0
 def from_node(cls, sp, node, types):
     return cls.from_node_dict(sp, etree_convert(node), types)