()
| 75 | } |
| 76 | |
| 77 | func LoadTemplates() error { |
| 78 | var err error |
| 79 | Rules = make(map[string]string) |
| 80 | Dicts = make(map[string][]string) |
| 81 | ExtractRegexps = make(parsers.Extractors) |
| 82 | Extractors = make(parsers.Extractors) |
| 83 | // load rule |
| 84 | |
| 85 | err = yaml.Unmarshal(LoadConfig("spray_rule"), &Rules) |
| 86 | if err != nil { |
| 87 | return err |
| 88 | } |
| 89 | |
| 90 | // load default words |
| 91 | var dicts map[string]string |
| 92 | err = yaml.Unmarshal(LoadConfig("spray_dict"), &dicts) |
| 93 | if err != nil { |
| 94 | return err |
| 95 | } |
| 96 | for name, wordlist := range dicts { |
| 97 | dict := strings.Split(strings.TrimSpace(wordlist), "\n") |
| 98 | for i, d := range dict { |
| 99 | dict[i] = strings.TrimSpace(d) |
| 100 | } |
| 101 | Dicts[strings.TrimSuffix(name, ".txt")] = dict |
| 102 | } |
| 103 | |
| 104 | // load mask |
| 105 | var keywords map[string]interface{} |
| 106 | err = yaml.Unmarshal(LoadConfig("spray_common"), &keywords) |
| 107 | if err != nil { |
| 108 | return err |
| 109 | } |
| 110 | |
| 111 | for k, v := range keywords { |
| 112 | items, ok := v.([]interface{}) |
| 113 | if !ok { |
| 114 | continue |
| 115 | } |
| 116 | t := make([]string, len(items)) |
| 117 | for i, vv := range items { |
| 118 | t[i] = iutils.ToString(vv) |
| 119 | } |
| 120 | mask.SpecialWords[k] = t |
| 121 | } |
| 122 | |
| 123 | // Load legacy extractors (still used for URL crawl regexps: js, url) |
| 124 | var extracts []*parsers.Extractor |
| 125 | err = yaml.Unmarshal(LoadConfig("extract"), &extracts) |
| 126 | if err != nil { |
| 127 | return err |
| 128 | } |
| 129 | |
| 130 | for _, extract := range extracts { |
| 131 | extract.Compile() |
| 132 | |
| 133 | ExtractRegexps[extract.Name] = []*parsers.Extractor{extract} |
| 134 | for _, tag := range extract.Tags { |
no test coverage detected