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)
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)
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)
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)
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)
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)
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