shogo/internal/shodan/alert/list.go
2024-05-29 01:42:40 +01:00

40 lines
793 B
Go

package alert
import (
"context"
"fmt"
"strings"
"git.supernets.org/perp/shogo/internal/utils"
)
// Return all the active alerts
func (a *Alert) List() {
// Get results
results, err := utils.Client.GetAlerts(context.Background())
if err != nil {
a.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
return
}
// Store lines
var lines string
// Add lines
lines += utils.Title.Sprintf("%s%13s%28s\n", "Alert ID", "Name", "IP/Network")
for index := range results {
lines += fmt.Sprintf(
"%-14s %-24s %24s\n",
utils.Green(results[index].ID),
utils.Blue(results[index].Name),
utils.Green(strings.Join(results[index].Filters.IP, ",")),
)
}
// Remove empty newline
// Send results
lines = strings.TrimRight(lines, "\n")
a.Results <- lines
}