From 3a1d4db227b72cb598b04a0300ee90da6a5f6f81 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 27 Oct 2013 14:26:06 +0100 Subject: [PATCH 1/2] local: Add file ext blacklist (fixes #516). Adds a new local/scan_blacklist_extensions config value for controlling file extensions to ignore. --- docs/ext/local.rst | 4 ++++ mopidy/backends/local/__init__.py | 1 + mopidy/backends/local/ext.conf | 6 ++++++ mopidy/scanner.py | 5 +++++ 4 files changed, 16 insertions(+) diff --git a/docs/ext/local.rst b/docs/ext/local.rst index 1abebb1d..1fbb3d51 100644 --- a/docs/ext/local.rst +++ b/docs/ext/local.rst @@ -52,6 +52,10 @@ Configuration values Number of milliseconds before giving up scanning a file and moving on to the next file. +.. confval:: local/scan_blacklist_extensions + + File extensions to ignore when scanning the media directory. + Usage ===== diff --git a/mopidy/backends/local/__init__.py b/mopidy/backends/local/__init__.py index 9d1e655f..4efe4456 100644 --- a/mopidy/backends/local/__init__.py +++ b/mopidy/backends/local/__init__.py @@ -23,6 +23,7 @@ class Extension(ext.Extension): schema['tag_cache_file'] = config.Path() schema['scan_timeout'] = config.Integer( minimum=1000, maximum=1000*60*60) + schema['scan_blacklist_extensions'] = config.List(optional=True) return schema def validate_environment(self): diff --git a/mopidy/backends/local/ext.conf b/mopidy/backends/local/ext.conf index 7e0f0f2b..ef5fdd78 100644 --- a/mopidy/backends/local/ext.conf +++ b/mopidy/backends/local/ext.conf @@ -4,3 +4,9 @@ media_dir = $XDG_MUSIC_DIR playlists_dir = $XDG_DATA_DIR/mopidy/local/playlists tag_cache_file = $XDG_DATA_DIR/mopidy/local/tag_cache scan_timeout = 1000 +scan_blacklist_extensions = + .jpeg + .jpg + .png + .txt + .log diff --git a/mopidy/scanner.py b/mopidy/scanner.py index 2e8876a2..f8e12f98 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -71,6 +71,7 @@ def main(): local_updater = updaters.values()[0](config) # TODO: switch to actor? media_dir = config['local']['media_dir'] + blacklist_extensions = config['local']['scan_blacklist_extensions'] uris_library = set() uris_update = set() @@ -92,6 +93,10 @@ def main(): logging.info('Checking %s for new or modified tracks.', media_dir) for uri in path.find_uris(config['local']['media_dir']): + if os.path.splitext(path.uri_to_path(uri))[1] in blacklist_extensions: + logging.debug('Skipped %s: File extension blacklisted.', uri) + continue + if uri not in uris_library: uris_update.add(uri) From 3884da2d7eaf5cc251aa6b94e8e36bcf3883fbd0 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 27 Oct 2013 21:27:11 +0100 Subject: [PATCH 2/2] local: Rename scan_blacklist_extensions to excluded_file_extensions --- docs/ext/local.rst | 4 ++-- mopidy/backends/local/__init__.py | 2 +- mopidy/backends/local/ext.conf | 2 +- mopidy/scanner.py | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/ext/local.rst b/docs/ext/local.rst index 1fbb3d51..f6b281bd 100644 --- a/docs/ext/local.rst +++ b/docs/ext/local.rst @@ -52,9 +52,9 @@ Configuration values Number of milliseconds before giving up scanning a file and moving on to the next file. -.. confval:: local/scan_blacklist_extensions +.. confval:: local/excluded_file_extensions - File extensions to ignore when scanning the media directory. + File extensions to exclude when scanning the media directory. Usage diff --git a/mopidy/backends/local/__init__.py b/mopidy/backends/local/__init__.py index 4efe4456..6c66c70d 100644 --- a/mopidy/backends/local/__init__.py +++ b/mopidy/backends/local/__init__.py @@ -23,7 +23,7 @@ class Extension(ext.Extension): schema['tag_cache_file'] = config.Path() schema['scan_timeout'] = config.Integer( minimum=1000, maximum=1000*60*60) - schema['scan_blacklist_extensions'] = config.List(optional=True) + schema['excluded_file_extensions'] = config.List(optional=True) return schema def validate_environment(self): diff --git a/mopidy/backends/local/ext.conf b/mopidy/backends/local/ext.conf index ef5fdd78..f05a09c0 100644 --- a/mopidy/backends/local/ext.conf +++ b/mopidy/backends/local/ext.conf @@ -4,7 +4,7 @@ media_dir = $XDG_MUSIC_DIR playlists_dir = $XDG_DATA_DIR/mopidy/local/playlists tag_cache_file = $XDG_DATA_DIR/mopidy/local/tag_cache scan_timeout = 1000 -scan_blacklist_extensions = +excluded_file_extensions = .jpeg .jpg .png diff --git a/mopidy/scanner.py b/mopidy/scanner.py index f8e12f98..dd21fdb4 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -71,7 +71,7 @@ def main(): local_updater = updaters.values()[0](config) # TODO: switch to actor? media_dir = config['local']['media_dir'] - blacklist_extensions = config['local']['scan_blacklist_extensions'] + excluded_extensions = config['local']['excluded_file_extensions'] uris_library = set() uris_update = set() @@ -93,8 +93,8 @@ def main(): logging.info('Checking %s for new or modified tracks.', media_dir) for uri in path.find_uris(config['local']['media_dir']): - if os.path.splitext(path.uri_to_path(uri))[1] in blacklist_extensions: - logging.debug('Skipped %s: File extension blacklisted.', uri) + if os.path.splitext(path.uri_to_path(uri))[1] in excluded_extensions: + logging.debug('Skipped %s: File extension excluded.', uri) continue if uri not in uris_library: