diff --git a/mopidy/file/__init__.py b/mopidy/file/__init__.py index ea4dea12..771a65a4 100644 --- a/mopidy/file/__init__.py +++ b/mopidy/file/__init__.py @@ -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) diff --git a/mopidy/file/ext.conf b/mopidy/file/ext.conf index 486619a1..64721a26 100644 --- a/mopidy/file/ext.conf +++ b/mopidy/file/ext.conf @@ -6,3 +6,6 @@ media_dirs = show_dotfiles = false follow_symlinks = false metadata_timeout = 1000 +excluded_file_extensions = + .jpg + .jpeg diff --git a/mopidy/file/library.py b/mopidy/file/library.py index 10182a38..dbf7fb4e 100644 --- a/mopidy/file/library.py +++ b/mopidy/file/library.py @@ -36,6 +36,10 @@ 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 +64,9 @@ 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