diff --git a/main.go b/main.go index 175939e..47ea8e8 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,6 @@ import ( "path" "path/filepath" "slices" - "strings" "github.com/gabriel-vasile/mimetype" "github.com/pelletier/go-toml/v2" @@ -35,7 +34,7 @@ var conversionMap = map[string][]string{ "image/gif": {".gif"}, } -var suffixesToCheck []string +var suffixesToCheck = map[string]struct{}{} func loadConfiguration() (*Config, error) { dir, err := os.UserConfigDir() @@ -89,9 +88,7 @@ func loadSuffixes() { for _, extensions := range conversionMap { // Only add unique extensions to the suffixesToCheck list. for _, ext := range extensions { - if !slices.Contains(suffixesToCheck, ext) { - suffixesToCheck = append(suffixesToCheck, ext) - } + suffixesToCheck[ext] = struct{}{} } } } @@ -117,10 +114,10 @@ func shouldEntryBeChecked(entry fs.DirEntry) bool { if !entry.Type().IsRegular() { return false } - for _, suffix := range suffixesToCheck { - if strings.HasSuffix(entry.Name(), suffix) { - return true - } + ext := filepath.Ext(entry.Name()) + _, exists := suffixesToCheck[ext] + if exists { + return true } return false }