mirror of
https://github.com/chainreactors/spray.git
synced 2025-09-15 11:40:13 +00:00
优化status的处理, 运行通过+
或!
在原有的基础上修改
This commit is contained in:
parent
02195a8005
commit
78ee22b044
@ -200,35 +200,9 @@ func (opt *Option) PrepareRunner() (*Runner, error) {
|
|||||||
logs.Log.Important("Advance Mod: " + s.String())
|
logs.Log.Important("Advance Mod: " + s.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
if opt.BlackStatus != "" {
|
BlackStatus = parseStatus(BlackStatus, opt.BlackStatus)
|
||||||
for _, s := range strings.Split(opt.BlackStatus, ",") {
|
WhiteStatus = parseStatus(WhiteStatus, opt.WhiteStatus)
|
||||||
si, err := strconv.Atoi(s)
|
FuzzyStatus = parseStatus(FuzzyStatus, opt.FuzzyStatus)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
BlackStatus = append(BlackStatus, si)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if opt.WhiteStatus != "" {
|
|
||||||
for _, s := range strings.Split(opt.WhiteStatus, ",") {
|
|
||||||
si, err := strconv.Atoi(s)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
WhiteStatus = append(WhiteStatus, si)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if opt.FuzzyStatus != "" {
|
|
||||||
for _, s := range strings.Split(opt.FuzzyStatus, ",") {
|
|
||||||
si, err := strconv.Atoi(s)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
FuzzyStatus = append(FuzzyStatus, si)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// prepare word
|
// prepare word
|
||||||
dicts := make([][]string, len(opt.Dictionaries))
|
dicts := make([][]string, len(opt.Dictionaries))
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/url"
|
"net/url"
|
||||||
"path"
|
"path"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -18,6 +19,42 @@ func parseExtension(s string) string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseStatus(preset []int, changed string) []int {
|
||||||
|
if changed == "" {
|
||||||
|
return preset
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(changed, "+") {
|
||||||
|
for _, s := range strings.Split(changed[1:], ",") {
|
||||||
|
if t, err := strconv.Atoi(s); err != nil {
|
||||||
|
continue
|
||||||
|
} else {
|
||||||
|
preset = append(preset, t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if strings.HasPrefix(changed, "!") {
|
||||||
|
for _, s := range strings.Split(changed[1:], ",") {
|
||||||
|
for i, status := range preset {
|
||||||
|
if t, err := strconv.Atoi(s); err != nil {
|
||||||
|
break
|
||||||
|
} else if t == status {
|
||||||
|
preset = append(preset[:i], preset[i+1:]...)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
preset = []int{}
|
||||||
|
for _, s := range strings.Split(changed, ",") {
|
||||||
|
if t, err := strconv.Atoi(s); err != nil {
|
||||||
|
continue
|
||||||
|
} else {
|
||||||
|
preset = append(preset, t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return preset
|
||||||
|
}
|
||||||
|
|
||||||
func loadFileToSlice(filename string) ([]string, error) {
|
func loadFileToSlice(filename string) ([]string, error) {
|
||||||
var ss []string
|
var ss []string
|
||||||
content, err := ioutil.ReadFile(filename)
|
content, err := ioutil.ReadFile(filename)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user