Improve colors

This commit is contained in:
Melroy van den Berg 2025-04-24 16:04:25 +02:00
parent cfb37ee2dc
commit 7d49479cc6
No known key found for this signature in database
GPG key ID: 71D11FF23454B9D7

View file

@ -38,6 +38,7 @@ func createSummary(jsonStr string) string {
cyan := color.New(color.FgCyan).SprintFunc() cyan := color.New(color.FgCyan).SprintFunc()
green := color.New(color.FgGreen).SprintFunc() green := color.New(color.FgGreen).SprintFunc()
yellow := color.New(color.FgYellow).SprintFunc() yellow := color.New(color.FgYellow).SprintFunc()
red := color.New(color.FgRed).SprintFunc()
header := fmt.Sprintf("%s: %s\n", bold("Type"), cyan(objectType)) header := fmt.Sprintf("%s: %s\n", bold("Type"), cyan(objectType))
@ -47,13 +48,13 @@ func createSummary(jsonStr string) string {
// Add ID if available // Add ID if available
if id := gjson.Get(jsonStr, "id").String(); id != "" { if id := gjson.Get(jsonStr, "id").String(); id != "" {
summaryParts = append(summaryParts, fmt.Sprintf("%s: %s", bold("ID"), id)) summaryParts = append(summaryParts, fmt.Sprintf("%s: %s", bold("ID"), green(id)))
} }
// Process based on type // Process based on type
switch objectType { switch objectType {
case "Person", "Application", "Group", "Organization", "Service": case "Person", "Application", "Group", "Organization", "Service":
summaryParts = formatActor(jsonStr, summaryParts, bold, green) summaryParts = formatActor(jsonStr, summaryParts, bold, cyan, green, red, yellow)
case "Note", "Article", "Page", "Question": case "Note", "Article", "Page", "Question":
summaryParts = formatContent(jsonStr, summaryParts, bold, green) summaryParts = formatContent(jsonStr, summaryParts, bold, green)
case "Create", "Update", "Delete", "Follow", "Add", "Remove", "Like", "Block", "Announce": case "Create", "Update", "Delete", "Follow", "Add", "Remove", "Like", "Block", "Announce":
@ -72,17 +73,17 @@ func createSummary(jsonStr string) string {
} }
// formatActor formats actor-type objects (Person, Service, etc.) // formatActor formats actor-type objects (Person, Service, etc.)
func formatActor(jsonStr string, parts []string, bold, green func(a ...interface{}) string) []string { func formatActor(jsonStr string, parts []string, bold, cyan, green, red, yellow func(a ...interface{}) string) []string {
if name := gjson.Get(jsonStr, "name").String(); name != "" { if name := gjson.Get(jsonStr, "name").String(); name != "" {
parts = append(parts, fmt.Sprintf("%s: %s", bold("Name"), name)) parts = append(parts, fmt.Sprintf("%s: %s", bold("Name"), cyan(name)))
} }
if preferredUsername := gjson.Get(jsonStr, "preferredUsername").String(); preferredUsername != "" { if preferredUsername := gjson.Get(jsonStr, "preferredUsername").String(); preferredUsername != "" {
parts = append(parts, fmt.Sprintf("%s: %s", bold("Username"), preferredUsername)) parts = append(parts, fmt.Sprintf("%s: %s", bold("Username"), red(preferredUsername)))
} }
if url := gjson.Get(jsonStr, "url").String(); url != "" { if url := gjson.Get(jsonStr, "url").String(); url != "" {
parts = append(parts, fmt.Sprintf("%s: %s", bold("URL"), url)) parts = append(parts, fmt.Sprintf("%s: %s", bold("URL"), green(url)))
} }
if summary := gjson.Get(jsonStr, "summary").String(); summary != "" { if summary := gjson.Get(jsonStr, "summary").String(); summary != "" {
@ -90,15 +91,15 @@ func formatActor(jsonStr string, parts []string, bold, green func(a ...interface
} }
if published := gjson.Get(jsonStr, "published").String(); published != "" { if published := gjson.Get(jsonStr, "published").String(); published != "" {
parts = append(parts, fmt.Sprintf("%s: %s", bold("Published"), formatDate(published))) parts = append(parts, fmt.Sprintf("%s: %s", bold("Published"), yellow(formatDate(published))))
} }
if followers := gjson.Get(jsonStr, "followers").String(); followers != "" { if followers := gjson.Get(jsonStr, "followers").String(); followers != "" {
parts = append(parts, fmt.Sprintf("%s: %s", bold("Followers"), followers)) parts = append(parts, fmt.Sprintf("%s: %s", bold("Followers"), green(followers)))
} }
if following := gjson.Get(jsonStr, "following").String(); following != "" { if following := gjson.Get(jsonStr, "following").String(); following != "" {
parts = append(parts, fmt.Sprintf("%s: %s", bold("Following"), following)) parts = append(parts, fmt.Sprintf("%s: %s", bold("Following"), green(following)))
} }
return parts return parts