file-browser: Changed as discussed in PR 1207

This commit is contained in:
rawdlite 2015-07-01 10:33:51 +02:00
parent bd70eac124
commit 2c587edf7a
2 changed files with 6 additions and 16 deletions

View File

@ -1,8 +1,7 @@
[files]
enabled = true
media_dir =
~/:Home
/data/music/music_data:Music
$XDG_MUSIC_DIR
show_hidden = false
follow_symlinks = true
metadata_timeout = 1000

View File

@ -17,6 +17,8 @@ logger = logging.getLogger(__name__)
class FilesLibraryProvider(backend.LibraryProvider):
"""Library for browsing local files."""
# TODO: get_images that can pull from metadata and/or .folder.png etc?
# TODO: handle playlists?
@property
def root_directory(self):
@ -32,7 +34,6 @@ class FilesLibraryProvider(backend.LibraryProvider):
def __init__(self, backend, config):
super(FilesLibraryProvider, self).__init__(backend)
self._media_dirs = []
# import pdb; pdb.set_trace()
for entry in config['files']['media_dir']:
media_dir = {}
media_dict = entry.split(':')
@ -48,15 +49,13 @@ class FilesLibraryProvider(backend.LibraryProvider):
else:
media_dir['name'] = media_dict[0].replace(os.sep, '+')
self._media_dirs.append(media_dir)
logger.debug(self._media_dirs)
self._follow_symlinks = config['files']['follow_symlinks']
self._show_hidden = config['files']['show_hidden']
self._scanner = scan.Scanner(
timeout=config['files']['metadata_timeout'])
def browse(self, uri, encoding=sys.getfilesystemencoding()):
def browse(self, uri):
logger.debug(u'browse called with uri %s' % uri)
# import pdb; pdb.set_trace()
result = []
localpath = path.uri_to_path(uri)
if localpath == 'root':
@ -78,15 +77,10 @@ class FilesLibraryProvider(backend.LibraryProvider):
elif stat.S_ISDIR(st.st_mode):
result.append(models.Ref.directory(name=name, uri=uri))
elif stat.S_ISREG(st.st_mode) and self._check_audiofile(uri):
# if self._is_playlist(child):
# result.append(models.Ref.playlist(
# name=name,
# uri='m3u:%s' % child))
# else:
result.append(models.Ref.track(name=name, uri=uri))
else:
logger.warn(u'Ignored file: %s' % child.decode(encoding,
'replace'))
logger.warn(u'Ignored file: %s' % child.decode('ascii',
'ignore'))
pass
result.sort(key=operator.attrgetter('name'))
@ -98,7 +92,6 @@ class FilesLibraryProvider(backend.LibraryProvider):
if not self._is_in_basedir(localpath):
logger.warn(u'Not in basedir: %s' % localpath)
return []
# import pdb; pdb.set_trace()
try:
result = self._scanner.scan(uri)
track = utils.convert_tags_to_track(result.tags).copy(
@ -113,8 +106,6 @@ class FilesLibraryProvider(backend.LibraryProvider):
track = track.copy(name=name)
return [track]
# TODO: get_images that can pull from metadata and/or .folder.png etc?
def _show_media_dirs(self):
result = []
for media_dir in self._media_dirs: