fix: skip more binary files than just audio/video in RAG scan (#1547)
This commit is contained in:
@@ -660,21 +660,89 @@ def scan_directory(directory: Path) -> list[str]:
|
|||||||
"""Scan directory and return a list of matched files."""
|
"""Scan directory and return a list of matched files."""
|
||||||
spec = get_pathspec(directory)
|
spec = get_pathspec(directory)
|
||||||
|
|
||||||
audio_video_exts = [
|
binary_extensions = [
|
||||||
|
# Images
|
||||||
|
".png",
|
||||||
|
".jpg",
|
||||||
|
".jpeg",
|
||||||
|
".gif",
|
||||||
|
".bmp",
|
||||||
|
".ico",
|
||||||
|
".webp",
|
||||||
|
".tiff",
|
||||||
|
".exr",
|
||||||
|
".hdr",
|
||||||
|
".svg",
|
||||||
|
".psd",
|
||||||
|
".ai",
|
||||||
|
".eps",
|
||||||
|
# Audio/Video
|
||||||
".mp3",
|
".mp3",
|
||||||
".wav",
|
".wav",
|
||||||
".ogg",
|
|
||||||
".flac",
|
|
||||||
".aac",
|
|
||||||
".m4a",
|
|
||||||
".wma",
|
|
||||||
".mp4",
|
".mp4",
|
||||||
".avi",
|
".avi",
|
||||||
".mov",
|
".mov",
|
||||||
".wmv",
|
".webm",
|
||||||
|
".flac",
|
||||||
|
".ogg",
|
||||||
|
".m4a",
|
||||||
|
".aac",
|
||||||
|
".wma",
|
||||||
".flv",
|
".flv",
|
||||||
".mkv",
|
".mkv",
|
||||||
".webm",
|
".wmv",
|
||||||
|
# Documents
|
||||||
|
".pdf",
|
||||||
|
".doc",
|
||||||
|
".docx",
|
||||||
|
".xls",
|
||||||
|
".xlsx",
|
||||||
|
".ppt",
|
||||||
|
".pptx",
|
||||||
|
".odt",
|
||||||
|
# Archives
|
||||||
|
".zip",
|
||||||
|
".tar",
|
||||||
|
".gz",
|
||||||
|
".7z",
|
||||||
|
".rar",
|
||||||
|
".iso",
|
||||||
|
".dmg",
|
||||||
|
".pkg",
|
||||||
|
".deb",
|
||||||
|
".rpm",
|
||||||
|
".msi",
|
||||||
|
".apk",
|
||||||
|
".xz",
|
||||||
|
".bz2",
|
||||||
|
# Compiled
|
||||||
|
".exe",
|
||||||
|
".dll",
|
||||||
|
".so",
|
||||||
|
".dylib",
|
||||||
|
".class",
|
||||||
|
".pyc",
|
||||||
|
".o",
|
||||||
|
".obj",
|
||||||
|
".lib",
|
||||||
|
".a",
|
||||||
|
".out",
|
||||||
|
".app",
|
||||||
|
".apk",
|
||||||
|
".jar",
|
||||||
|
# Fonts
|
||||||
|
".ttf",
|
||||||
|
".otf",
|
||||||
|
".woff",
|
||||||
|
".woff2",
|
||||||
|
".eot",
|
||||||
|
# Other binary
|
||||||
|
".bin",
|
||||||
|
".dat",
|
||||||
|
".db",
|
||||||
|
".sqlite",
|
||||||
|
".db",
|
||||||
|
".DS_Store",
|
||||||
]
|
]
|
||||||
|
|
||||||
matched_files = []
|
matched_files = []
|
||||||
@@ -683,8 +751,8 @@ def scan_directory(directory: Path) -> list[str]:
|
|||||||
file_paths = [str(Path(root) / file) for file in files]
|
file_paths = [str(Path(root) / file) for file in files]
|
||||||
for file in file_paths:
|
for file in file_paths:
|
||||||
file_ext = Path(file).suffix.lower()
|
file_ext = Path(file).suffix.lower()
|
||||||
if file_ext in audio_video_exts:
|
if file_ext in binary_extensions:
|
||||||
logger.info("Skipping audio/video file: %s", file)
|
logger.info("Skipping binary file: %s", file)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if spec and spec.match_file(os.path.relpath(file, directory)):
|
if spec and spec.match_file(os.path.relpath(file, directory)):
|
||||||
|
|||||||
Reference in New Issue
Block a user