func loadPublicSuffixList() (psl []string) { psl, err := name.ParsePublicSuffixCSV(*publicCSV, ns.PublicSuffixes, *includeTLDs) if err != nil { showErrorAndExit(err, 20) } if !*includeUTF8 { psl = wordlist.FilterUTF8(psl) } fmt.Printf("Public Suffixes: %s\n", strings.Join(psl, ", ")) return }
func createDomainList(prefixes, suffixes, psl []string) (domains []string) { fmt.Print("Creating domain list... ") domains = name.Combine(prefixes, suffixes, psl, *single, *hyphenate, *itself, *hacks, *fuse, *minLength) if !*includeUTF8 { domains = wordlist.FilterUTF8(domains) } domains = name.FilterMaxLength(domains, *maxLength) if *strictMode { domains = name.FilterStrictDomains(domains, ns.PublicSuffixes) } domains = wordlist.RemoveDuplicates(domains) fmt.Println("done.") if len(domains) == 0 { showErrorAndExit(errors.New("I could not generate a single valid domain"), 50) } return }