enbas/internal/model/timeline.go
Dan Anglin 6844c6e348
checkpoint: use Content instead of Text
Content from Mastodon statuses are not converted to plain text server
side unfortunately so it needs to be done client side.

Display messages from the Content field and run the content through the
StripHTMLTags function before printing.
2024-05-26 03:09:47 +01:00

29 lines
1 KiB
Go

package model
import (
"strings"
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
)
type Timeline struct {
Name string
Statuses []Status
}
func (t Timeline) String() string {
var builder strings.Builder
separator := "────────────────────────────────────────────────────────────────────────────────"
builder.WriteString(utilities.HeaderFormat(t.Name) + "\n\n")
for _, status := range t.Statuses {
builder.WriteString(utilities.DisplayNameFormat(status.Account.DisplayName) + " (@" + status.Account.Username + ")\n\n")
builder.WriteString(utilities.WrapLines(utilities.StripHTMLTags(status.Content), "\n", 80) + "\n\n")
builder.WriteString(utilities.FieldFormat("ID:") + " " + status.ID + "\t" + utilities.FieldFormat("Created at:") + " " + utilities.FormatTime(status.CreatedAt) + "\n")
builder.WriteString(separator + "\n")
}
return builder.String()
}