checkpoint: initial design for notifications; need to think about the way forward

This commit is contained in:
Dan Anglin 2024-06-04 08:21:52 +01:00
parent c2957c179d
commit 3a857fda4a
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638

View file

@ -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()
}