mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
Fixed folder scanning in SE, which was completely broken
Oops
This commit is contained in:
parent
7e8f9036d8
commit
be8efea081
@ -14,10 +14,9 @@ from hscommon.path import Path
|
|||||||
from cocoa import proxy
|
from cocoa import proxy
|
||||||
|
|
||||||
from core.scanner import ScanType
|
from core.scanner import ScanType
|
||||||
from core import fs
|
|
||||||
from core.directories import Directories as DirectoriesBase, DirectoryState
|
from core.directories import Directories as DirectoriesBase, DirectoryState
|
||||||
from core_se.app import DupeGuru as DupeGuruBase
|
from core_se.app import DupeGuru as DupeGuruBase
|
||||||
from core_se.fs import File
|
from core_se import fs
|
||||||
from .app import PyDupeGuruBase
|
from .app import PyDupeGuruBase
|
||||||
|
|
||||||
def is_bundle(str_path):
|
def is_bundle(str_path):
|
||||||
@ -36,7 +35,7 @@ class Directories(DirectoriesBase):
|
|||||||
ROOT_PATH_TO_EXCLUDE = list(map(Path, ['/Library', '/Volumes', '/System', '/bin', '/sbin', '/opt', '/private', '/dev']))
|
ROOT_PATH_TO_EXCLUDE = list(map(Path, ['/Library', '/Volumes', '/System', '/bin', '/sbin', '/opt', '/private', '/dev']))
|
||||||
HOME_PATH_TO_EXCLUDE = [Path('Library')]
|
HOME_PATH_TO_EXCLUDE = [Path('Library')]
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
DirectoriesBase.__init__(self, fileclasses=[Bundle, File])
|
DirectoriesBase.__init__(self, fileclasses=[Bundle, fs.File])
|
||||||
|
|
||||||
def _default_state_for_path(self, path):
|
def _default_state_for_path(self, path):
|
||||||
result = DirectoriesBase._default_state_for_path(self, path)
|
result = DirectoriesBase._default_state_for_path(self, path)
|
||||||
|
@ -53,6 +53,7 @@ class Directories:
|
|||||||
self._dirs = []
|
self._dirs = []
|
||||||
self.states = {}
|
self.states = {}
|
||||||
self.fileclasses = fileclasses
|
self.fileclasses = fileclasses
|
||||||
|
self.folderclass = fs.Folder
|
||||||
|
|
||||||
def __contains__(self, path):
|
def __contains__(self, path):
|
||||||
for p in self._dirs:
|
for p in self._dirs:
|
||||||
@ -163,7 +164,7 @@ class Directories:
|
|||||||
Returned folders also have their ``is_ref`` attr set if applicable.
|
Returned folders also have their ``is_ref`` attr set if applicable.
|
||||||
"""
|
"""
|
||||||
for path in self._dirs:
|
for path in self._dirs:
|
||||||
from_folder = fs.Folder(path)
|
from_folder = self.folderclass(path)
|
||||||
for folder in self._get_folders(from_folder, j):
|
for folder in self._get_folders(from_folder, j):
|
||||||
yield folder
|
yield folder
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ class Folder(File):
|
|||||||
if self._subfolders is None:
|
if self._subfolders is None:
|
||||||
subpaths = [self.path + name for name in self.path.listdir()]
|
subpaths = [self.path + name for name in self.path.listdir()]
|
||||||
subfolders = [p for p in subpaths if not p.islink() and p.isdir()]
|
subfolders = [p for p in subpaths if not p.islink() and p.isdir()]
|
||||||
self._subfolders = [Folder(p) for p in subfolders]
|
self._subfolders = [self.__class__(p) for p in subfolders]
|
||||||
return self._subfolders
|
return self._subfolders
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -244,8 +244,6 @@ def get_file(path, fileclasses=[File]):
|
|||||||
def get_files(path, fileclasses=[File]):
|
def get_files(path, fileclasses=[File]):
|
||||||
"""Returns a list of :class:`File` for each file contained in ``path``.
|
"""Returns a list of :class:`File` for each file contained in ``path``.
|
||||||
|
|
||||||
Subfolders are recursively scanned.
|
|
||||||
|
|
||||||
:param Path path: path to scan
|
:param Path path: path to scan
|
||||||
:param fileclasses: List of candidate :class:`File` classes
|
:param fileclasses: List of candidate :class:`File` classes
|
||||||
"""
|
"""
|
||||||
|
@ -17,6 +17,7 @@ class DupeGuru(DupeGuruBase):
|
|||||||
def __init__(self, view, appdata):
|
def __init__(self, view, appdata):
|
||||||
DupeGuruBase.__init__(self, view, appdata)
|
DupeGuruBase.__init__(self, view, appdata)
|
||||||
self.directories.fileclasses = [fs.File]
|
self.directories.fileclasses = [fs.File]
|
||||||
|
self.directories.folderclass = fs.Folder
|
||||||
|
|
||||||
def _prioritization_categories(self):
|
def _prioritization_categories(self):
|
||||||
return prioritize.all_categories()
|
return prioritize.all_categories()
|
||||||
|
@ -11,29 +11,37 @@ from hscommon.util import format_size
|
|||||||
from core import fs
|
from core import fs
|
||||||
from core.app import format_timestamp, format_perc, format_words, format_dupe_count
|
from core.app import format_timestamp, format_perc, format_words, format_dupe_count
|
||||||
|
|
||||||
|
def get_display_info(dupe, group, delta):
|
||||||
|
size = dupe.size
|
||||||
|
mtime = dupe.mtime
|
||||||
|
m = group.get_match_of(dupe)
|
||||||
|
if m:
|
||||||
|
percentage = m.percentage
|
||||||
|
dupe_count = 0
|
||||||
|
if delta:
|
||||||
|
r = group.ref
|
||||||
|
size -= r.size
|
||||||
|
mtime -= r.mtime
|
||||||
|
else:
|
||||||
|
percentage = group.percentage
|
||||||
|
dupe_count = len(group.dupes)
|
||||||
|
return {
|
||||||
|
'name': dupe.name,
|
||||||
|
'folder_path': str(dupe.folder_path),
|
||||||
|
'size': format_size(size, 0, 1, False),
|
||||||
|
'extension': dupe.extension,
|
||||||
|
'mtime': format_timestamp(mtime, delta and m),
|
||||||
|
'percentage': format_perc(percentage),
|
||||||
|
'words': format_words(dupe.words) if hasattr(dupe, 'words') else '',
|
||||||
|
'dupe_count': format_dupe_count(dupe_count),
|
||||||
|
}
|
||||||
|
|
||||||
class File(fs.File):
|
class File(fs.File):
|
||||||
def get_display_info(self, group, delta):
|
def get_display_info(self, group, delta):
|
||||||
size = self.size
|
return get_display_info(self, group, delta)
|
||||||
mtime = self.mtime
|
|
||||||
m = group.get_match_of(self)
|
|
||||||
if m:
|
class Folder(fs.Folder):
|
||||||
percentage = m.percentage
|
def get_display_info(self, group, delta):
|
||||||
dupe_count = 0
|
return get_display_info(self, group, delta)
|
||||||
if delta:
|
|
||||||
r = group.ref
|
|
||||||
size -= r.size
|
|
||||||
mtime -= r.mtime
|
|
||||||
else:
|
|
||||||
percentage = group.percentage
|
|
||||||
dupe_count = len(group.dupes)
|
|
||||||
return {
|
|
||||||
'name': self.name,
|
|
||||||
'folder_path': str(self.folder_path),
|
|
||||||
'size': format_size(size, 0, 1, False),
|
|
||||||
'extension': self.extension,
|
|
||||||
'mtime': format_timestamp(mtime, delta and m),
|
|
||||||
'percentage': format_perc(percentage),
|
|
||||||
'words': format_words(self.words) if hasattr(self, 'words') else '',
|
|
||||||
'dupe_count': format_dupe_count(dupe_count),
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user