MCPcopy Create free account
hub / github.com/chainreactors/spray / LoadTemplates

Function LoadTemplates

pkg/load.go:77–149  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75}
76
77func 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 {

Callers 1

LoadResourcesFunction · 0.85

Calls 2

LoadProtonRulesFunction · 0.85
LoadConfigFunction · 0.70

Tested by

no test coverage detected