mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-11-19 21:39:02 +00:00
[#25 state:fixed] Adjusted to the change in hsfs:[4] (Bundle change). It allows to leverage the File caching system, thus fixing #25.
--HG-- extra : convert_revision : svn%3Ac306627e-7827-47d3-bdf0-9a457c9553a1/trunk%4029
This commit is contained in:
parent
6a4a93f767
commit
ba75f3243d
@ -8,6 +8,7 @@
|
||||
from hsfs.phys import Directory as DirectoryBase
|
||||
from hsfs.phys.bundle import Bundle
|
||||
from hsutil.path import Path
|
||||
from hsutil.misc import extract
|
||||
from hsutil.str import get_file_ext
|
||||
|
||||
|
||||
@ -15,13 +16,19 @@ from . import app_cocoa, data
|
||||
from .directories import Directories as DirectoriesBase, STATE_EXCLUDED
|
||||
|
||||
class DGDirectory(DirectoryBase):
|
||||
def _create_sub_dir(self, name, with_parent = True):
|
||||
def _create_sub_file(self, name, with_parent=True):
|
||||
ext = get_file_ext(name)
|
||||
if ext == 'app':
|
||||
parent = self if with_parent else None
|
||||
return Bundle(parent, name)
|
||||
else:
|
||||
return super(DGDirectory, self)._create_sub_dir(name, with_parent)
|
||||
return super(DGDirectory, self)._create_sub_file(name, with_parent)
|
||||
|
||||
def _fetch_subitems(self):
|
||||
subdirs, subfiles = super(DGDirectory, self)._fetch_subitems()
|
||||
apps, normal_dirs = extract(lambda name: get_file_ext(name) == 'app', subdirs)
|
||||
subfiles += apps
|
||||
return normal_dirs, subfiles
|
||||
|
||||
|
||||
class Directories(DirectoriesBase):
|
||||
|
@ -54,7 +54,11 @@ class Scanner(object):
|
||||
SCAN_TYPE_CONTENT_AUDIO: lambda f: [str(f.audiosize)]
|
||||
}[self.scan_type]
|
||||
for f in j.iter_with_progress(files, 'Read metadata of %d/%d files'):
|
||||
if self.size_threshold:
|
||||
f.size # pre-read, makes a smoother progress if read here (especially for bundles)
|
||||
f.words = func(f)
|
||||
if self.size_threshold:
|
||||
files = [f for f in files if f.size >= self.size_threshold]
|
||||
return mf.getmatches(files, j)
|
||||
|
||||
@staticmethod
|
||||
@ -75,8 +79,6 @@ class Scanner(object):
|
||||
j = j.start_subjob([8, 2])
|
||||
for f in [f for f in files if not hasattr(f, 'is_ref')]:
|
||||
f.is_ref = False
|
||||
if self.size_threshold:
|
||||
files = [f for f in files if f.size >= self.size_threshold]
|
||||
logging.info('Getting matches')
|
||||
if self.match_factory is None:
|
||||
matches = self._getmatches(files, j)
|
||||
|
Loading…
Reference in New Issue
Block a user