improve system folder skip

This commit is contained in:
lelo 2026-01-24 13:25:10 +00:00
parent 4abf9c14b1
commit 6b8f27ad19
2 changed files with 12 additions and 4 deletions

3
app.py
View File

@ -562,7 +562,8 @@ def list_directory_contents(directory, subpath):
continue continue
if entry.is_dir(follow_symlinks=False): if entry.is_dir(follow_symlinks=False):
if entry.name in ["Transkription", "@eaDir", ".ai"]: # skip system/hidden helper folders
if entry.name in ["Transkription", "@eaDir", ".app", "#recycle"]:
continue continue
rel_path = os.path.join(subpath, entry.name) if subpath else entry.name rel_path = os.path.join(subpath, entry.name) if subpath else entry.name

View File

@ -106,9 +106,9 @@ def log_structure(root_path, max_depth=None, show_files=False):
entries = sorted(it, key=lambda e: (not e.is_dir(follow_symlinks=False), e.name.lower())) entries = sorted(it, key=lambda e: (not e.is_dir(follow_symlinks=False), e.name.lower()))
for entry in entries: for entry in entries:
if entry.is_dir(follow_symlinks=False): if entry.is_dir(follow_symlinks=False):
if entry.name.startswith(('.', '@', '#')): if entry.name.startswith(('.')):
continue continue
if entry.name.lower() in {"transkription"}: if entry.name in {"Transkription", "@eaDir", ".app", "#recycle"}:
continue continue
indent = " " * (depth - 1) indent = " " * (depth - 1)
log(f"{indent}- {entry.name}/") log(f"{indent}- {entry.name}/")
@ -151,7 +151,8 @@ def updatefileindex():
log(f"Processing folder: {foldername}") log(f"Processing folder: {foldername}")
raw_folderpath = folder.get("folderpath") raw_folderpath = folder.get("folderpath")
norm_folderpath = os.path.normpath(raw_folderpath) norm_folderpath = os.path.normpath(raw_folderpath)
log_structure(norm_folderpath, max_depth=None, show_files=False) # Only log folder names up to 3 levels deep; suppress filenames
log_structure(norm_folderpath, max_depth=3, show_files=False)
# Precompute the length of the base folder path (plus one for the separator) # Precompute the length of the base folder path (plus one for the separator)
base_len = len(norm_folderpath) + 1 base_len = len(norm_folderpath) + 1
# Prefetch hit counts for this basefolder to avoid per-file queries # Prefetch hit counts for this basefolder to avoid per-file queries
@ -210,6 +211,12 @@ def updatefileindex():
for d, files in dir_files.items(): for d, files in dir_files.items():
log_directory_batch(d, files) log_directory_batch(d, files)
# Progress indicator
dir_count = len(dir_files)
file_count = len(scanned_files)
log(f"Found {dir_count} folders and {file_count} files in '{foldername}'.")
log("updating database...")
# Remove database entries for files under this base folder that are no longer on disk. # Remove database entries for files under this base folder that are no longer on disk.
pattern = foldername + os.sep + '%' pattern = foldername + os.sep + '%'
cursor.execute("SELECT id, relative_path, filename FROM files WHERE relative_path LIKE ?", (pattern,)) cursor.execute("SELECT id, relative_path, filename FROM files WHERE relative_path LIKE ?", (pattern,))