示例#1
0
def _parse_album(json_obj, artist=None, artists=None):
    if artist is None and 'artist' in json_obj:
        artist = _parse_artist(json_obj['artist'])
    #if artists is None:
    #    artists = _parse_artists(json_obj['artists'])
    available = json_obj['streamable'] if 'streamable' in json_obj else false
    kwargs = {
        'id': json_obj['id'],
        'name': json_obj['title'],
        'num_tracks': json_obj.get('tracks_count'),
        'duration': json_obj.get('duration'),
        'artist': artist,
        'available': available,
        #'artists': artists,
    }
    if 'image' in json_obj and 'large' in json_obj['image']:
        kwargs['image'] = json_obj['image']['large']

    if 'releaseDate' in json_obj:
        try:
            kwargs['release_date'] = datetime.datetime(
                *map(int, json_obj['releaseDate'].split('-')))
        except ValueError:
            pass
    return Album(**kwargs)
示例#2
0
def _parse_album(data, artist=None, artists=None):
    #uplog("_parse_album: %s" % data)
    if artist is None and 'artists' in data:
        artist = _parse_artist(data['artists'][0])
    available = True
    #if not available:
    #    uplog("Album not streamable: %s " % data['title'])
    kwargs = {
        'id': data['id'],
        'name': data['name'],
        #'num_tracks': data.get('tracks_count'),
        #'duration': data.get('duration'),
        'artist': artist,
        'available': available,
        #'artists': artists,
    }

    if 'images' in data:
        kwargs['image'] = data['images'][0]['url']

    if 'releaseDate' in data:
        try:
            # Keep this as a string else we fail to json-reserialize it later
            kwargs['release_date'] = data['releaseDate']
        except ValueError:
            pass
    return Album(**kwargs)
示例#3
0
def _parse_album(json_obj, artist=None, artists=None):
    #uplog("Qobuz:_parse_album:DATA:\n%s"%json.dumps(json_obj, indent=4))
    if artist is None and 'artist' in json_obj:
        artist = _parse_artist(json_obj['artist'])
    #if artists is None:
    #    artists = _parse_artists(json_obj['artists'])
    available = json_obj['streamable'] if 'streamable' in json_obj else False
    #if not available:
    #    uplog("Album not streamable: %s " % json_obj['title'])
    kwargs = {
        'id': json_obj['id'],
        'name': json_obj['title'],
        'num_tracks': json_obj.get('tracks_count'),
        'duration': json_obj.get('duration'),
        'artist': artist,
        'available': available,
        #'artists': artists,
    }
    if 'image' in json_obj and 'large' in json_obj['image']:
        kwargs['image'] = json_obj['image']['large']
    if 'maximum_bit_depth' in json_obj:
        kwargs['maxbitdepth'] = str(json_obj['maximum_bit_depth'])
    if 'maximum_sampling_rate' in json_obj:
        kwargs['maxsamprate'] = str(json_obj['maximum_sampling_rate'])
    if 'maximum_channel_count' in json_obj:
        kwargs['maxchannels'] = str(json_obj['maximum_channel_count'])

    if 'releaseDate' in json_obj:
        try:
            # Keep this as a string else we fail to json-reserialize it later
            kwargs['release_date'] = json_obj['releaseDate']
            #kwargs['release_date'] = datetime.datetime(*map(int, json_obj['releaseDate'].split('-')))
        except ValueError:
            pass
    return Album(**kwargs)
示例#4
0
def _parse_track(data, album=None):
    artist_name = entryOrUnknown(data, 'artist')
    albartist_name = entryOrUnknown(data, 'albartistAlbum', None)

    artistid = data["artistId"][0] if "artistId" in data else None
    artist = Artist(id=artistid, name=artist_name)
    albartist = Artist(id=artistid, name=albartist_name) if \
                albartist_name is not None else artist
    albid = entryOrUnknown(data, 'albumId', None)

    if album is None:
        #alb_artist = data['albumArtist'] if 'albumArtist' in data else ""
        alb_art = data['albumArtRef'][0]["url"] if 'albumArtRef' in data else ""
        alb_tt = entryOrUnknown(data, 'album')
        album = Album(id=albid, name=alb_tt, image=alb_art, artist=artist)

    kwargs = {
        'id': data['id'] if 'id' in data else data['nid'],
        'name': data['title'],
        'duration': int(data['durationMillis']) / 1000,
        'track_num': data['trackNumber'],
        'disc_num': data['discNumber'],
        'artist': artist,
        'album': album,
        #'artists': artists,
    }
    if 'genre' in data:
        kwargs['genre'] = data['genre']

    return Track(**kwargs)
示例#5
0
def _parse_ln_album(data):
    artist = Artist(id=data['artist_metajam_id'], name=data['artist_name'])
    kwargs = {
        'id': data['id']['metajamCompactKey'],
        'name' : data['id']['title'],
        'artist' : artist,
    }
    if 'images' in data:
        kwargs['image'] = data['images'][0]['url']

    return Album(**kwargs)
示例#6
0
def _parse_album(data, artist=None):
    if artist is None:
        artist_name = "Unknown"
        if 'artist' in data:
            artist_name = data['artist']
        elif 'albumArtist' in data:
            artist_name = data['albumArtist']
        artist = Artist(name=artist_name)
        
    kwargs = {
        'id': data['albumId'],
        'name': data['name'],
        'artist': artist,
    }
    if 'albumArtRef' in data:
        kwargs['image'] = data['albumArtRef']
        
    if 'year' in data:
        kwargs['release_date'] = data['year']

    return Album(**kwargs)
示例#7
0
def _parse_album(json_obj, artist=None, artists=None):
    #if artist is None and 'artist' in json_obj:
    #    artist = _parse_artist(json_obj['artist'])
    #if artists is None:
    #    artists = _parse_artists(json_obj['artists'])
    # available = json_obj['streamable'] if 'streamable' in json_obj else false
    #if not available:
    #    uplog("Album not streamable: %s " % json_obj['title'])

    uplog(json_obj)
    uplog("-_" * 30)

    kwargs = {
        'id': json_obj['id'].encode("utf-8"),
        'name': json_obj['title'].encode("utf-8"),
        'num_tracks': json_obj.get('trackCount'),
        'duration': json_obj.get('duration'),
        'artist': json_obj['artist'].encode("utf-8"),
        #'available': available,
        #'artists': artists,
    }

    if 'cover' in json_obj:

        if "preview" in json_obj["cover"] and isinstance(
                json_obj["cover"], dict):
            kwargs['image'] = json_obj['cover']["preview"]["file_url"]
        else:
            kwargs['image'] = json_obj['cover']

    ##if 'releaseDate' in json_obj:
    ##    try:
    ##        kwargs['release_date'] = datetime.datetime(*map(int, json_obj['releaseDate'].split('-')))
    ##    except ##ValueError:
    ##        pass
    a = Album(**kwargs)
    return a