Excluded file ext in Mopidy-File
Added support for excluding specific file extensions from Mopidy-File library
This commit is contained in:
parent
e72d5dc016
commit
9de5e2e857
@ -22,6 +22,7 @@ class Extension(ext.Extension):
|
|||||||
def get_config_schema(self):
|
def get_config_schema(self):
|
||||||
schema = super(Extension, self).get_config_schema()
|
schema = super(Extension, self).get_config_schema()
|
||||||
schema['media_dirs'] = config.List(optional=True)
|
schema['media_dirs'] = config.List(optional=True)
|
||||||
|
schema['excluded_file_extensions'] = config.List(optional=True)
|
||||||
schema['show_dotfiles'] = config.Boolean(optional=True)
|
schema['show_dotfiles'] = config.Boolean(optional=True)
|
||||||
schema['follow_symlinks'] = config.Boolean(optional=True)
|
schema['follow_symlinks'] = config.Boolean(optional=True)
|
||||||
schema['metadata_timeout'] = config.Integer(optional=True)
|
schema['metadata_timeout'] = config.Integer(optional=True)
|
||||||
|
|||||||
@ -6,3 +6,6 @@ media_dirs =
|
|||||||
show_dotfiles = false
|
show_dotfiles = false
|
||||||
follow_symlinks = false
|
follow_symlinks = false
|
||||||
metadata_timeout = 1000
|
metadata_timeout = 1000
|
||||||
|
excluded_file_extensions =
|
||||||
|
.jpg
|
||||||
|
.jpeg
|
||||||
|
|||||||
@ -36,6 +36,10 @@ class FileLibraryProvider(backend.LibraryProvider):
|
|||||||
self._media_dirs = list(self._get_media_dirs(config))
|
self._media_dirs = list(self._get_media_dirs(config))
|
||||||
self._follow_symlinks = config['file']['follow_symlinks']
|
self._follow_symlinks = config['file']['follow_symlinks']
|
||||||
self._show_dotfiles = config['file']['show_dotfiles']
|
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(
|
self._scanner = scan.Scanner(
|
||||||
timeout=config['file']['metadata_timeout'])
|
timeout=config['file']['metadata_timeout'])
|
||||||
|
|
||||||
@ -60,6 +64,9 @@ class FileLibraryProvider(backend.LibraryProvider):
|
|||||||
if not self._show_dotfiles and dir_entry.startswith(b'.'):
|
if not self._show_dotfiles and dir_entry.startswith(b'.'):
|
||||||
continue
|
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:
|
if os.path.islink(child_path) and not self._follow_symlinks:
|
||||||
logger.debug('Ignoring symlink: %s', uri)
|
logger.debug('Ignoring symlink: %s', uri)
|
||||||
continue
|
continue
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user