summaryrefslogtreecommitdiffstats
path: root/internal/formatter
diff options
context:
space:
mode:
authorsinner <[email protected]>2026-01-19 06:02:10 -0500
committersinner <[email protected]>2026-01-19 06:02:10 -0500
commit85caa38c7b45766f044a016b88a410f75cb7469e (patch)
treefd6be3a176b62097494ced076768d82179a4dbcf /internal/formatter
parent542a09fd14761b4789ae89e16060b1b453e2e0f2 (diff)
downloaddborg-85caa38c7b45766f044a016b88a410f75cb7469e.tar.gz
dborg-85caa38c7b45766f044a016b88a410f75cb7469e.zip
feat: add command aliases for improved cli usabilityHEADmaster
Diffstat (limited to 'internal/formatter')
-rw-r--r--internal/formatter/sl.go86
1 files changed, 12 insertions, 74 deletions
diff --git a/internal/formatter/sl.go b/internal/formatter/sl.go
index d7d293f..33f4ac0 100644
--- a/internal/formatter/sl.go
+++ b/internal/formatter/sl.go
@@ -10,7 +10,7 @@ import (
func FormatSLResults(resp *models.SLResponse, asJSON bool) (string, error) {
if asJSON {
- data, err := json.MarshalIndent(resp.Results, "", " ")
+ data, err := json.MarshalIndent(resp.Hits, "", " ")
if err != nil {
return "", fmt.Errorf("failed to marshal JSON: %w", err)
}
@@ -19,63 +19,35 @@ func FormatSLResults(resp *models.SLResponse, asJSON bool) (string, error) {
var sb strings.Builder
- if resp.Results == nil {
+ if len(resp.Hits) == 0 {
sb.WriteString(fmt.Sprintf("\n%s\n\n", Gray("No results found")))
return sb.String(), nil
}
- resultsMap, ok := resp.Results.(map[string]interface{})
- if !ok {
- resultsJSON, err := json.MarshalIndent(resp.Results, "", " ")
- if err != nil {
- return "", fmt.Errorf("failed to format results: %w", err)
- }
- return string(resultsJSON), nil
- }
-
- hits, ok := resultsMap["hits"].([]interface{})
- if !ok || len(hits) == 0 {
- sb.WriteString(fmt.Sprintf("\n%s\n\n", Gray("No results found")))
- return sb.String(), nil
- }
-
- numHits, _ := resultsMap["num_hits"].(float64)
- elapsed, _ := resultsMap["elapsed_time_micros"].(float64)
-
sb.WriteString(fmt.Sprintf("%s %s %s\n",
Cyan("Found"),
- Bold(Yellow(fmt.Sprintf("%d", int(numHits)))),
- Cyan(fmt.Sprintf("credentials (%.2fms)", elapsed/1000))))
+ Bold(Yellow(fmt.Sprintf("%d", resp.NumHits))),
+ Cyan("credentials")))
sb.WriteString("\n")
- for i, hit := range hits {
- hitMap, ok := hit.(map[string]interface{})
- if !ok {
- continue
- }
-
+ for i, hit := range resp.Hits {
if i > 0 {
sb.WriteString(Dim("───"))
sb.WriteString("\n")
}
- username, _ := hitMap["username"].(string)
- password, _ := hitMap["password"].(string)
- url, _ := hitMap["url"].(string)
- filename, _ := hitMap["filename"].(string)
+ sb.WriteString(fmt.Sprintf("%s %s\n", Dim("Username:"), Bold(hit.Username)))
- sb.WriteString(fmt.Sprintf("%s %s\n", Dim("Username:"), Bold(username)))
-
- if password != "" {
- sb.WriteString(fmt.Sprintf("%s %s\n", Dim("Password:"), Yellow(password)))
+ if hit.Password != "" {
+ sb.WriteString(fmt.Sprintf("%s %s\n", Dim("Password:"), Yellow(hit.Password)))
}
- if url != "" {
- sb.WriteString(fmt.Sprintf("%s %s\n", Dim("URL:"), Blue(url)))
+ if hit.URL != "" {
+ sb.WriteString(fmt.Sprintf("%s %s\n", Dim("URL:"), Blue(hit.URL)))
}
- if filename != "" {
- sb.WriteString(fmt.Sprintf("%s %s\n", Dim("Source:"), Magenta(filename)))
+ if hit.Filename != "" {
+ sb.WriteString(fmt.Sprintf("%s %s\n", Dim("Source:"), Magenta(hit.Filename)))
}
sb.WriteString("\n")
@@ -89,37 +61,3 @@ func FormatSLResults(resp *models.SLResponse, asJSON bool) (string, error) {
return sb.String(), nil
}
-
-func formatSLResultsData(sb *strings.Builder, data map[string]interface{}) {
- sb.WriteString(fmt.Sprintf("%s\n", Bold("Stealer Log Entries:")))
-
- for key, value := range data {
- sb.WriteString(fmt.Sprintf("\n %s:\n", Cyan(key)))
- if valueMap, ok := value.(map[string]interface{}); ok {
- for k, v := range valueMap {
- sb.WriteString(fmt.Sprintf(" %s %v\n", Dim(fmt.Sprintf("%s:", k)), v))
- }
- } else if valueArray, ok := value.([]interface{}); ok {
- for i, item := range valueArray {
- sb.WriteString(fmt.Sprintf(" %s %v\n", Dim(fmt.Sprintf("[%d]:", i)), item))
- }
- } else {
- sb.WriteString(fmt.Sprintf(" %v\n", value))
- }
- }
-}
-
-func formatSLResultsArray(sb *strings.Builder, data []interface{}) {
- sb.WriteString(fmt.Sprintf("%s\n", Bold("Stealer Log Entries:")))
-
- for i, entry := range data {
- sb.WriteString(fmt.Sprintf("\n %s:\n", Blue(fmt.Sprintf("Entry %d", i+1))))
- if entryMap, ok := entry.(map[string]interface{}); ok {
- for key, value := range entryMap {
- sb.WriteString(fmt.Sprintf(" %s %v\n", Dim(fmt.Sprintf("%s:", key)), value))
- }
- } else {
- sb.WriteString(fmt.Sprintf(" %v\n", entry))
- }
- }
-}