Merge pull request #1568 into feature/file-excluded-file-exts

This commit is contained in:
Stein Magnus Jodal 2016-10-24 23:28:38 +02:00
commit 3d60acd8b2
3 changed files with 14 additions and 0 deletions

View File

@ -22,6 +22,7 @@ class Extension(ext.Extension):
def get_config_schema(self):
schema = super(Extension, self).get_config_schema()
schema['media_dirs'] = config.List(optional=True)
schema['excluded_file_extensions'] = config.List(optional=True)
schema['show_dotfiles'] = config.Boolean(optional=True)
schema['follow_symlinks'] = config.Boolean(optional=True)
schema['metadata_timeout'] = config.Integer(optional=True)

View File

@ -6,3 +6,6 @@ media_dirs =
show_dotfiles = false
follow_symlinks = false
metadata_timeout = 1000
excluded_file_extensions =
.jpg
.jpeg

View File

@ -36,6 +36,12 @@ class FileLibraryProvider(backend.LibraryProvider):
self._media_dirs = list(self._get_media_dirs(config))
self._follow_symlinks = config['file']['follow_symlinks']
self._show_dotfiles = config['file']['show_dotfiles']
self._excluded_file_extensions = \
config['file']['excluded_file_extensions']
self._excluded_file_extensions = tuple(
bytes(file_ext.lower()) for file_ext in
self._excluded_file_extensions)
self._scanner = scan.Scanner(
timeout=config['file']['metadata_timeout'])
@ -60,6 +66,10 @@ class FileLibraryProvider(backend.LibraryProvider):
if not self._show_dotfiles and dir_entry.startswith(b'.'):
continue
if self._excluded_file_extensions and \
dir_entry.endswith(self._excluded_file_extensions):
continue
if os.path.islink(child_path) and not self._follow_symlinks:
logger.debug('Ignoring symlink: %s', uri)
continue