mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Make ignores configurable
Adds config file setting PAPERLESS_CONSUMER_IGNORE_PATTERNS.
This commit is contained in:
		| @@ -1,6 +1,6 @@ | ||||
| import logging | ||||
| import os | ||||
| from pathlib import Path | ||||
| from pathlib import Path, PurePath | ||||
| from threading import Thread | ||||
| from time import sleep | ||||
|  | ||||
| @@ -36,15 +36,11 @@ def _tags_from_path(filepath): | ||||
|     return tag_ids | ||||
|  | ||||
|  | ||||
| def _is_ignored(filepath): | ||||
|     # https://github.com/jonaswinkler/paperless-ng/discussions/1037 | ||||
|     basename = os.path.basename(filepath) | ||||
|     if basename == ".DS_STORE": | ||||
|         return True | ||||
|     if basename.startswith("._"): | ||||
|         return True | ||||
|  | ||||
|     return False | ||||
| def _is_ignored(filepath: str) -> bool: | ||||
|     filepath_relative = PurePath(filepath).relative_to( | ||||
|         settings.CONSUMPTION_DIR) | ||||
|     return any( | ||||
|         filepath_relative.match(p) for p in settings.CONSUMER_IGNORE_PATTERNS) | ||||
|  | ||||
|  | ||||
| def _consume(filepath): | ||||
|   | ||||
| @@ -222,6 +222,22 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): | ||||
|         fnames = [os.path.basename(args[1]) for args, _ in self.task_mock.call_args_list] | ||||
|         self.assertCountEqual(fnames, ["my_file.pdf", "my_second_file.pdf"]) | ||||
|  | ||||
|     def test_is_ignored(self): | ||||
|         test_paths = [ | ||||
|             (os.path.join(self.dirs.consumption_dir, "foo.pdf"), False), | ||||
|             (os.path.join(self.dirs.consumption_dir, "foo","bar.pdf"), False), | ||||
|             (os.path.join(self.dirs.consumption_dir, ".DS_STORE", "foo.pdf"), True), | ||||
|             (os.path.join(self.dirs.consumption_dir, "foo", ".DS_STORE", "bar.pdf"), True), | ||||
|             (os.path.join(self.dirs.consumption_dir, ".stfolder", "foo.pdf"), True), | ||||
|             (os.path.join(self.dirs.consumption_dir, "._foo.pdf"), True), | ||||
|             (os.path.join(self.dirs.consumption_dir, "._foo", "bar.pdf"), False), | ||||
|         ] | ||||
|         for file_path, expected_ignored in test_paths: | ||||
|             self.assertEqual( | ||||
|                 expected_ignored, | ||||
|                 document_consumer._is_ignored(file_path), | ||||
|                 f'_is_ignored("{file_path}") != {expected_ignored}') | ||||
|  | ||||
|  | ||||
| @override_settings(CONSUMER_POLLING=1, CONSUMER_POLLING_DELAY=1, CONSUMER_POLLING_RETRY_COUNT=20) | ||||
| class TestConsumerPolling(TestConsumer): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Albers
					Daniel Albers