Change get_all_files behaviour
This commit is contained in:
		
							parent
							
								
									cb8a4cd24e
								
							
						
					
					
						commit
						3af848a162
					
				@ -131,7 +131,7 @@ def _import(destination, source, file, album_from_folder, trash,
 | 
			
		||||
    for path in paths:
 | 
			
		||||
        path = os.path.expanduser(path)
 | 
			
		||||
        if os.path.isdir(path):
 | 
			
		||||
            files.update(FILESYSTEM.get_all_files(path, None, exclude_regex_list))
 | 
			
		||||
            files.update(FILESYSTEM.get_all_files(path, False, exclude_regex_list))
 | 
			
		||||
        else:
 | 
			
		||||
            if not FILESYSTEM.should_exclude(path, exclude_regex_list, True):
 | 
			
		||||
                files.add(path)
 | 
			
		||||
@ -267,7 +267,7 @@ def _update(album, location, time, title, paths, debug):
 | 
			
		||||
    for path in paths:
 | 
			
		||||
        path = os.path.expanduser(path)
 | 
			
		||||
        if os.path.isdir(path):
 | 
			
		||||
            files.update(FILESYSTEM.get_all_files(path, None))
 | 
			
		||||
            files.update(FILESYSTEM.get_all_files(path, False))
 | 
			
		||||
        else:
 | 
			
		||||
            files.add(path)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -84,31 +84,34 @@ class FileSystem(object):
 | 
			
		||||
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    def get_all_files(self, path, extensions=None, exclude_regex_list=set()):
 | 
			
		||||
    def get_all_files(self, path, extensions=False, exclude_regex_list=set()):
 | 
			
		||||
        """Recursively get all files which match a path and extension.
 | 
			
		||||
 | 
			
		||||
        :param str path string: Path to start recursive file listing
 | 
			
		||||
        :param tuple(str) extensions: File extensions to include (whitelist)
 | 
			
		||||
        :returns: generator
 | 
			
		||||
        """
 | 
			
		||||
        # If extensions is None then we get all supported extensions
 | 
			
		||||
        if not extensions:
 | 
			
		||||
            extensions = set()
 | 
			
		||||
            subclasses = media.get_all_subclasses()
 | 
			
		||||
            for cls in subclasses:
 | 
			
		||||
                extensions.update(cls.extensions)
 | 
			
		||||
        # If extensions is None then we get all files
 | 
			
		||||
        # if not extensions:
 | 
			
		||||
        #     extensions = set()
 | 
			
		||||
        #     subclasses = media.get_all_subclasses()
 | 
			
		||||
        #     for cls in subclasses:
 | 
			
		||||
        #         extensions.update(cls.extensions)
 | 
			
		||||
 | 
			
		||||
        # Create a list of compiled regular expressions to match against the file path
 | 
			
		||||
        compiled_regex_list = [re.compile(regex) for regex in exclude_regex_list]
 | 
			
		||||
        for dirname, dirnames, filenames in os.walk(path):
 | 
			
		||||
            if dirname == os.path.join(path, '.elodie'):
 | 
			
		||||
                continue
 | 
			
		||||
            for filename in filenames:
 | 
			
		||||
                # If file extension is in `extensions` 
 | 
			
		||||
                # And if file path is not in exclude regexes
 | 
			
		||||
                # Then append to the list
 | 
			
		||||
                filename_path = os.path.join(dirname, filename)
 | 
			
		||||
                if (
 | 
			
		||||
                        os.path.splitext(filename)[1][1:].lower() in extensions and
 | 
			
		||||
                        not self.should_exclude(filename_path, compiled_regex_list, False)
 | 
			
		||||
                        extensions == False
 | 
			
		||||
                        or os.path.splitext(filename)[1][1:].lower() in extensions
 | 
			
		||||
                        and not self.should_exclude(filename_path, compiled_regex_list, False)
 | 
			
		||||
                    ):
 | 
			
		||||
                    yield filename_path
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ class.
 | 
			
		||||
.. moduleauthor:: Jaisen Mathai <jaisen@jmathai.com>
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
from .media import Media
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -25,4 +26,11 @@ class Audio(Media):
 | 
			
		||||
        super().__init__(source)
 | 
			
		||||
 | 
			
		||||
    def is_valid(self):
 | 
			
		||||
        return super().is_valid()
 | 
			
		||||
        """Check the file extension against valid file extensions.
 | 
			
		||||
 | 
			
		||||
        The list of valid file extensions come from self.extensions.
 | 
			
		||||
 | 
			
		||||
        :returns: bool
 | 
			
		||||
        """
 | 
			
		||||
        source = self.source
 | 
			
		||||
        return os.path.splitext(source)[1][1:].lower() in self.extensions
 | 
			
		||||
 | 
			
		||||
@ -168,14 +168,8 @@ class Media():
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def is_valid(self):
 | 
			
		||||
        """Check the file extension against valid file extensions.
 | 
			
		||||
 | 
			
		||||
        The list of valid file extensions come from self.extensions.
 | 
			
		||||
 | 
			
		||||
        :returns: bool
 | 
			
		||||
        """
 | 
			
		||||
        source = self.source
 | 
			
		||||
        return os.path.splitext(source)[1][1:].lower() in self.extensions
 | 
			
		||||
        # Disable extension check
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def set_album_from_folder(self, path):
 | 
			
		||||
 | 
			
		||||
@ -33,4 +33,11 @@ class Video(Media):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def is_valid(self):
 | 
			
		||||
        return super().is_valid()
 | 
			
		||||
        """Check the file extension against valid file extensions.
 | 
			
		||||
 | 
			
		||||
        The list of valid file extensions come from self.extensions.
 | 
			
		||||
 | 
			
		||||
        :returns: bool
 | 
			
		||||
        """
 | 
			
		||||
        source = self.source
 | 
			
		||||
        return os.path.splitext(source)[1][1:].lower() in self.extensions
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,7 @@ def main(argv):
 | 
			
		||||
    for path in paths:
 | 
			
		||||
        path = os.path.expanduser(path)
 | 
			
		||||
        if os.path.isdir(path):
 | 
			
		||||
            for source in filesystem.get_all_files(path, None):
 | 
			
		||||
            for source in filesystem.get_all_files(path, False):
 | 
			
		||||
                status = add_original_name(source, subclasses)
 | 
			
		||||
                result.append((_decode(source), status))
 | 
			
		||||
        else:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user