Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/output/output_stats.go
2070 views
1
package output
2
3
import (
4
"github.com/logrusorgru/aurora"
5
"github.com/projectdiscovery/nuclei/v3/pkg/output/stats"
6
)
7
8
// StatsOutputWriter implements writer interface for stats observation
9
type StatsOutputWriter struct {
10
colorizer aurora.Aurora
11
Tracker *stats.Tracker
12
}
13
14
var _ Writer = &StatsOutputWriter{}
15
16
// NewStatsOutputWriter returns a new StatsOutputWriter instance.
17
func NewTrackerWriter(t *stats.Tracker) *StatsOutputWriter {
18
return &StatsOutputWriter{
19
colorizer: aurora.NewAurora(true),
20
Tracker: t,
21
}
22
}
23
24
func (tw *StatsOutputWriter) Close() {}
25
26
func (tw *StatsOutputWriter) Colorizer() aurora.Aurora {
27
return tw.colorizer
28
}
29
30
func (tw *StatsOutputWriter) Write(event *ResultEvent) error {
31
return nil
32
}
33
34
func (tw *StatsOutputWriter) WriteFailure(event *InternalWrappedEvent) error {
35
return nil
36
}
37
38
func (tw *StatsOutputWriter) Request(templateID, url, requestType string, err error) {
39
if err == nil {
40
return
41
}
42
jsonReq := getJSONLogRequestFromError(templateID, url, requestType, err)
43
tw.Tracker.TrackErrorKind(jsonReq.Error)
44
}
45
46
func (tw *StatsOutputWriter) WriteStoreDebugData(host, templateID, eventType string, data string) {}
47
48
func (tw *StatsOutputWriter) RequestStatsLog(statusCode, response string) {
49
tw.Tracker.TrackStatusCode(statusCode)
50
tw.Tracker.TrackWAFDetected(response)
51
}
52
func (tw *StatsOutputWriter) ResultCount() int {
53
return 0
54
}
55
56