package utils import ( "fmt" "math/rand" "strings" "time" ) var nameAdjectives = []string{"waddly", "frosty", "noot", "sleepy", "tuxedo", "briny", "squeaky", "blizzard", "pebble", "slippy"} var nameNouns = []string{"penguin", "gentoo", "rockhopper", "emperor", "macaroni", "chinstrap", "skua", "krill", "iceberg", "fishstick"} func SuggestName() string { return nameAdjectives[rand.Intn(len(nameAdjectives))] + "-" + nameNouns[rand.Intn(len(nameNouns))] } func Sanitize(raw string) string { return strings.ReplaceAll(strings.TrimSpace(raw), "\n", " ") } func SanitizeName(raw string) string { clean := strings.ToLower(Sanitize(raw)) clean = strings.ReplaceAll(clean, " ", "-") if len(clean) > 24 { clean = clean[:24] } return clean } func FormatSince(t time.Time) string { d := time.Since(t) switch { case d < time.Minute && d.Seconds() < 20: return "just now" case d < time.Hour: return fmt.Sprintf("%d minutes ago", int(d.Minutes())) case d < 24*time.Hour: return fmt.Sprintf("%d hours ago", int(d.Hours())) default: return fmt.Sprintf("%d days ago", int(d.Hours()/24)) } } func Truncate(s string, n int) string { if len(s) > n { return s[:n] } return s }