Simplify tag cache return values
This commit is contained in:
parent
590aea4b89
commit
d757d6a0ec
@ -188,7 +188,7 @@ class GStreamerLibraryController(BaseLibraryController):
|
||||
self.refresh()
|
||||
|
||||
def refresh(self, uri=None):
|
||||
tracks, artists, albums = parse_mpd_tag_cache(settings.TAG_CACHE,
|
||||
tracks = parse_mpd_tag_cache(settings.TAG_CACHE,
|
||||
settings.MUSIC_FOLDER)
|
||||
|
||||
for track in tracks:
|
||||
|
||||
@ -151,15 +151,13 @@ def parse_mpd_tag_cache(tag_cache, music_dir=''):
|
||||
Converts a MPD tag_cache into a lists of tracks, artists and albums.
|
||||
"""
|
||||
tracks = set()
|
||||
artists = set()
|
||||
albums = set()
|
||||
|
||||
try:
|
||||
with open(tag_cache) as library:
|
||||
contents = library.read()
|
||||
except IOError, e:
|
||||
logger.error('Could not open tag cache: %s', e)
|
||||
return tracks, artists, albums
|
||||
return tracks
|
||||
|
||||
current = {}
|
||||
state = None
|
||||
@ -177,16 +175,16 @@ def parse_mpd_tag_cache(tag_cache, music_dir=''):
|
||||
key, value = line.split(': ', 1)
|
||||
|
||||
if key == 'key':
|
||||
_convert_mpd_data(current, tracks, artists, albums, music_dir)
|
||||
_convert_mpd_data(current, tracks, music_dir)
|
||||
current.clear()
|
||||
|
||||
current[key.lower()] = value
|
||||
|
||||
_convert_mpd_data(current, tracks, artists, albums, music_dir)
|
||||
_convert_mpd_data(current, tracks, music_dir)
|
||||
|
||||
return tracks, artists, albums
|
||||
return tracks
|
||||
|
||||
def _convert_mpd_data(data, tracks, artists, albums, music_dir):
|
||||
def _convert_mpd_data(data, tracks, music_dir):
|
||||
if not data:
|
||||
return
|
||||
|
||||
@ -199,14 +197,12 @@ def _convert_mpd_data(data, tracks, artists, albums, music_dir):
|
||||
|
||||
if 'artist' in data:
|
||||
artist = Artist(name=data['artist'])
|
||||
artists.add(artist)
|
||||
track_kwargs['artists'] = [artist]
|
||||
album_kwargs['artists'] = [artist]
|
||||
|
||||
if 'album' in data:
|
||||
album_kwargs['name'] = data['album']
|
||||
album = Album(**album_kwargs)
|
||||
albums.add(album)
|
||||
track_kwargs['album'] = album
|
||||
|
||||
if 'title' in data:
|
||||
|
||||
@ -151,27 +151,19 @@ generate_track('subdir1/subsubdir/song9.mp3')
|
||||
|
||||
class MPDTagCacheToTracksTest(unittest.TestCase):
|
||||
def test_emtpy_cache(self):
|
||||
tracks, artists, albums = parse_mpd_tag_cache(data_folder('empty_tag_cache'),
|
||||
tracks = parse_mpd_tag_cache(data_folder('empty_tag_cache'),
|
||||
data_folder(''))
|
||||
self.assertEqual(set(), tracks)
|
||||
self.assertEqual(set(), artists)
|
||||
self.assertEqual(set(), albums)
|
||||
|
||||
def test_simple_cache(self):
|
||||
tracks, artists, albums = parse_mpd_tag_cache(data_folder('simple_tag_cache'),
|
||||
tracks = parse_mpd_tag_cache(data_folder('simple_tag_cache'),
|
||||
data_folder(''))
|
||||
|
||||
self.assertEqual(expected_tracks[0], list(tracks)[0])
|
||||
self.assertEqual(set(expected_artists), artists)
|
||||
self.assertEqual(set(expected_albums), albums)
|
||||
|
||||
def test_advanced_cache(self):
|
||||
tracks, artists, albums = parse_mpd_tag_cache(data_folder('advanced_tag_cache'),
|
||||
tracks = parse_mpd_tag_cache(data_folder('advanced_tag_cache'),
|
||||
data_folder(''))
|
||||
|
||||
self.assertEqual(set(expected_tracks), tracks)
|
||||
self.assertEqual(set(expected_artists), artists)
|
||||
self.assertEqual(set(expected_albums), albums)
|
||||
|
||||
def test_unicode_cache(self):
|
||||
raise SkipTest
|
||||
@ -181,12 +173,7 @@ class MPDTagCacheToTracksTest(unittest.TestCase):
|
||||
raise SkipTest
|
||||
|
||||
def test_cache_with_blank_track_info(self):
|
||||
tracks, artists, albums = parse_mpd_tag_cache(data_folder('blank_tag_cache'),
|
||||
tracks = parse_mpd_tag_cache(data_folder('blank_tag_cache'),
|
||||
data_folder(''))
|
||||
|
||||
uri = path_to_uri(data_folder('song1.mp3'))
|
||||
|
||||
self.assertEqual(set([Track(uri=uri, length=4000)]), tracks)
|
||||
self.assertEqual(set(), artists)
|
||||
self.assertEqual(set(), albums)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user