shogo/internal/shodan/info.go
perp c47bec5f76 💥 Remade all commands
Remade all commands for the pool.
2023-08-03 23:48:39 +01:00

64 lines
1.8 KiB
Go

package shodan
import (
"context"
"fmt"
"git.tcp.direct/perp/shogo/internal/utils"
)
// Return your account information
func (s *Shodan) Info() {
// Fetch API information
results, err := utils.Client.GetAPIInfo(context.Background())
if err != nil {
s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
return
}
// Store lines
var lines string
// Store profile name
var name string
// Add lines
lines += utils.Title.Sprintln("API")
lines += fmt.Sprintf("%s: %s\n", utils.Green("Plan"), utils.Blue(results.Plan))
lines += fmt.Sprintf("%s: %s\n", utils.Blue("Query credits"), utils.Green(results.QueryCredits))
lines += fmt.Sprintf("%s: %s\n", utils.Green("Scan credits"), utils.Blue(results.ScanCredits))
lines += fmt.Sprintf("%s: %s\n", utils.Blue("Telnet"), utils.Green(results.Telnet))
lines += fmt.Sprintf("%s: %s\n", utils.Green("HTTPS"), utils.Blue(results.HTTPS))
lines += fmt.Sprintf("%s: %s", utils.Blue("Unlocked"), utils.Green(results.Unlocked))
// Profile enabled
if s.Flags.Profile {
// Fetch profile information
results, err := utils.Client.GetAccountProfile(context.Background())
if err != nil {
s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
return
}
// Empty name
if results.Name == "" {
name = "?"
} else {
name = results.Name
}
// Add lines
lines += "\n\n"
lines += utils.Title.Sprintln("Profile")
lines += fmt.Sprintf("%s: %s\n", utils.Green("Name"), utils.Blue(name))
lines += fmt.Sprintf("%s: %s\n", utils.Blue("Member"), utils.Green(results.Member))
lines += fmt.Sprintf("%s: %s\n", utils.Green("Credits"), utils.Blue(results.Credits))
lines += fmt.Sprintf("%s: %s", utils.Blue("Created"), utils.Green(results.Created))
// Send results
s.Results <- lines
}
// Send results
s.Results <- lines
}