Stats command

Added stats command (Broken)
This commit is contained in:
perp 2023-08-02 04:57:31 +01:00
parent 76c9f54129
commit 70e45b270c

View File

@ -0,0 +1,55 @@
package commands
import (
"fmt"
"os"
"github.com/panjf2000/ants/v2"
"github.com/spf13/cobra"
"git.tcp.direct/perp/shogo/internal/shodan"
"git.tcp.direct/perp/shogo/internal/utils"
)
// Stats command
var statsCmd = &cobra.Command{
Use: "stats",
Short: "Return facet stats on a search",
Example: "stats <query>\nstats <query-1> <query-2>...",
Run: func(_ *cobra.Command, args []string) {
utils.CheckColor()
// Results channel
results := make(chan string)
// Goroutine pool
pool, err := ants.NewPool(threads)
if err != nil {
fmt.Printf("%s: %s\n", utils.Red("Error"), err.Error())
os.Exit(1)
}
defer pool.Release()
// Query each page
for p := 1; p <= pages; p++ {
stats := &shodan.Stats{
Query: args[0],
Page: p,
Results: results,
}
pool.Submit(func() {
go stats.Stats()
})
}
// Get page result
for j := 1; j <= pages*100; j++ {
result := <-results
if result != "" {
fmt.Println(result)
}
}
defer close(results)
},
}