package scanner import ( "os" "path/filepath" ) func GetScanTargets(category string) []string { home, _ := os.UserHomeDir() switch category { case "apps": // Windows apps are dispersed (Program Files), usually read-only. We don't file-scan them usually. return []string{ os.Getenv("ProgramFiles"), os.Getenv("ProgramFiles(x86)"), filepath.Join(os.Getenv("LocalAppData"), "Programs"), } case "photos": return []string{filepath.Join(home, "Pictures")} case "icloud": // iCloudDrive? return []string{filepath.Join(home, "iCloudDrive")} case "docs": return []string{filepath.Join(home, "Documents")} case "downloads": return []string{filepath.Join(home, "Downloads")} case "desktop": return []string{filepath.Join(home, "Desktop")} case "music": return []string{filepath.Join(home, "Music")} case "movies": return []string{filepath.Join(home, "Videos")} case "system": return []string{ filepath.Join(home, "AppData", "Local", "Temp"), filepath.Join(home, "AppData", "Local", "Microsoft", "Windows", "INetCache"), // IE/Edge cache filepath.Join(home, "AppData", "Local", "Google", "Chrome", "User Data", "Default", "Cache"), filepath.Join(home, "AppData", "Local", "Mozilla", "Firefox", "Profiles"), filepath.Join(home, "AppData", "Local", "BraveSoftware", "Brave-Browser", "User Data", "Default", "Cache"), filepath.Join(home, "AppData", "Local", "Opera Software", "Opera Stable", "Cache"), } case "cache": return []string{ os.Getenv("TEMP"), filepath.Join(home, "AppData", "Local", "Temp"), filepath.Join(home, "AppData", "Local", "Microsoft", "Windows", "INetCache"), filepath.Join(home, "AppData", "Local", "Google", "Chrome", "User Data", "Default", "Cache"), filepath.Join(home, "AppData", "Local", "Mozilla", "Firefox", "Profiles"), filepath.Join(home, "AppData", "Local", "BraveSoftware", "Brave-Browser", "User Data", "Default", "Cache"), filepath.Join(home, "AppData", "Local", "Opera Software", "Opera Stable", "Cache"), } case "games": return []string{ `C:\Program Files (x86)\Steam\steamapps\common`, `C:\Program Files\Epic Games`, `C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\games`, `C:\Program Files\EA Games`, filepath.Join(home, "AppData", "Roaming", ".minecraft"), } case "ai": return []string{ `C:\ComfyUI`, `C:\ai\ComfyUI`, filepath.Join(home, "ComfyUI"), filepath.Join(home, "stable-diffusion-webui"), filepath.Join(home, "webui"), filepath.Join(home, ".cache", "huggingface"), filepath.Join(home, ".ollama", "models"), filepath.Join(home, ".lmstudio", "models"), } case "docker": return []string{ filepath.Join(os.Getenv("LocalAppData"), "Docker", "wsl", "data"), } case "archives": // Archives usually scattered, but main ones in Downloads return []string{ filepath.Join(home, "Downloads"), filepath.Join(home, "Documents"), } case "vms": return []string{ filepath.Join(home, "Downloads"), filepath.Join(home, "Documents"), filepath.Join(home, "VirtualBox VMs"), } default: return []string{} } }