From 3a857fda4aa091c0552a2e8928b06d4919b194d8 Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Tue, 4 Jun 2024 08:21:52 +0100 Subject: [PATCH] checkpoint: initial design for notifications; need to think about the way forward --- internal/model/notification.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/internal/model/notification.go b/internal/model/notification.go index e532dc2..1753561 100644 --- a/internal/model/notification.go +++ b/internal/model/notification.go @@ -7,6 +7,7 @@ package model import ( "encoding/json" "fmt" + "strings" "time" "codeflow.dananglin.me.uk/apollo/enbas/internal/utilities" @@ -105,5 +106,22 @@ type Notification struct { } func (n Notification) Display(noColor bool) string { - return fmt.Sprintf(n.Type.MessageFormat(), utilities.DisplayNameFormat(noColor, n.Account.DisplayName) + " (@" + n.Account.Acct + ")") + var builder strings.Builder + + separator := "────────────────────────────────────────────────────────────────────────────────" + + fmt.Fprintf(&builder, + n.Type.MessageFormat(), + utilities.DisplayNameFormat(noColor, n.Account.DisplayName)+" (@"+n.Account.Acct+")", + ) + + if n.Status != nil { + builder.WriteString("\n\n" + utilities.DisplayNameFormat(noColor, n.Status.Account.DisplayName) + " (@" + n.Status.Account.Acct + ")\n") + builder.WriteString(utilities.WrapLines(utilities.ConvertHTMLToText(n.Status.Content), "\n", 80) + "\n\n") + builder.WriteString(utilities.FieldFormat(noColor, "ID:") + " " + n.Status.ID + "\t" + utilities.FieldFormat(noColor, "Created at:") + " " + utilities.FormatTime(n.Status.CreatedAt) + "\n") + } + + builder.WriteString(separator + "\n") + + return builder.String() }