From 6287a8e4687b4546443f231180fa4f456fc9c7f8 Mon Sep 17 00:00:00 2001 From: M09Ic Date: Tue, 7 Feb 2023 18:42:20 +0800 Subject: [PATCH] =?UTF-8?q?--fuzzy-status=E6=B7=BB=E5=8A=A0=E7=89=B9?= =?UTF-8?q?=E6=AE=8A=E6=83=85=E5=86=B5=20"all",=20=E6=89=80=E6=9C=89?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E7=8A=B6=E6=80=81=E7=A0=81=E9=83=BD?= =?UTF-8?q?=E4=BC=9A=E5=90=AF=E7=94=A8=E5=AF=B9=E5=BA=94=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E7=B3=8A=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/option.go | 6 +++++- internal/pool.go | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/internal/option.go b/internal/option.go index 4d2ab5e..025bb03 100644 --- a/internal/option.go +++ b/internal/option.go @@ -219,7 +219,11 @@ func (opt *Option) PrepareRunner() (*Runner, error) { BlackStatus = parseStatus(BlackStatus, opt.BlackStatus) WhiteStatus = parseStatus(WhiteStatus, opt.WhiteStatus) - FuzzyStatus = parseStatus(FuzzyStatus, opt.FuzzyStatus) + if opt.FuzzyStatus == "all" { + enableAllFuzzy = true + } else { + FuzzyStatus = parseStatus(FuzzyStatus, opt.FuzzyStatus) + } // prepare word dicts := make([][]string, len(opt.Dictionaries)) diff --git a/internal/pool.go b/internal/pool.go index e34980c..ece906b 100644 --- a/internal/pool.go +++ b/internal/pool.go @@ -18,7 +18,6 @@ import ( "golang.org/x/time/rate" "net/url" "path" - "strconv" "strings" "sync" "sync/atomic" @@ -26,11 +25,12 @@ import ( ) var ( - max = 2147483647 - MaxRedirect = 3 - MaxCrawl = 3 - MaxRecursion = 0 - nilBaseline = &pkg.Baseline{} + max = 2147483647 + MaxRedirect = 3 + MaxCrawl = 3 + MaxRecursion = 0 + enableAllFuzzy = false + nilBaseline = &pkg.Baseline{} ) func NewPool(ctx context.Context, config *pkg.Config) (*Pool, error) { @@ -369,13 +369,13 @@ func (pool *Pool) Handler() { "random": pool.random, "current": bl, } - for _, status := range FuzzyStatus { - if bl, ok := pool.baselines[status]; ok { - params["bl"+strconv.Itoa(status)] = bl - } else { - params["bl"+strconv.Itoa(status)] = nilBaseline - } - } + //for _, status := range FuzzyStatus { + // if bl, ok := pool.baselines[status]; ok { + // params["bl"+strconv.Itoa(status)] = bl + // } else { + // params["bl"+strconv.Itoa(status)] = nilBaseline + // } + //} } var status bool @@ -700,7 +700,7 @@ func (pool *Pool) addAddition(u *Unit) { } func (pool *Pool) addFuzzyBaseline(bl *pkg.Baseline) { - if _, ok := pool.baselines[bl.Status]; !ok && iutils.IntsContains(FuzzyStatus, bl.Status) { + if _, ok := pool.baselines[bl.Status]; !ok && (enableAllFuzzy || iutils.IntsContains(FuzzyStatus, bl.Status)) { bl.Collect() pool.waiter.Add(1) pool.doCrawl(bl)