Refactor parse_mpd_tag_cache to handle blank track info

This commit is contained in:
Thomas Adamcik 2010-04-30 19:55:39 +02:00
parent b84c9e3eff
commit 0d1da2fc08

View File

@ -175,22 +175,35 @@ def _convert_mpd_data(data, tracks, artists, albums, music_dir):
if not data: if not data:
return return
num_tracks = int(data['track'].split('/')[1]) track_kwargs = {}
track_no = int(data['track'].split('/')[0]) album_kwargs = {}
path = data['file']
if path[0] == '/': if 'track' in data:
path = path[1:] album_kwargs['num_tracks'] = int(data['track'].split('/')[1])
track_kwargs['track_no'] = int(data['track'].split('/')[0])
path = os.path.join(music_dir, path) if 'artist' in data:
uri = 'file://' + urllib.pathname2url(path) artist = Artist(name=data['artist'])
artists.add(artist)
track_kwargs['artists'] = [artist]
album_kwargs['artists'] = [artist]
artist = Artist(name=data['artist']) if 'album' in data:
artists.add(artist) album_kwargs['name'] = data['album']
album = Album(**album_kwargs)
albums.add(album)
track_kwargs['album'] = album
album = Album(name=data['album'], artists=[artist], num_tracks=num_tracks) if 'title' in data:
albums.add(album) track_kwargs['name'] = data['title']
track = Track(name=data['title'], artists=[artist], track_no=track_no, if data['file'][0] == '/':
length=int(data['time'])*1000, uri=uri, album=album) path = os.path.join(music_dir, data['file'][1:])
else:
path = os.path.join(music_dir, data['file'])
track_kwargs['uri'] = 'file://' + urllib.pathname2url(path)
track_kwargs['length'] = int(data.get('time', 0)) * 1000
track = Track(**track_kwargs)
tracks.add(track) tracks.add(track)