From cad41d792f9a3121ad866581820618bf6721c112 Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Sun, 26 May 2024 13:14:00 +0100 Subject: [PATCH] transform p tags to line breaks, run StripHTMLTags for status content --- internal/model/status.go | 6 ++---- internal/model/timeline.go | 2 +- internal/utilities/utilities.go | 17 +++++++++++++---- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/internal/model/status.go b/internal/model/status.go index 1bc22e7..81df7d7 100644 --- a/internal/model/status.go +++ b/internal/model/status.go @@ -158,7 +158,6 @@ func (s Status) String() string { %s %s - %s %s @@ -179,10 +178,9 @@ func (s Status) String() string { return fmt.Sprintf( format, - utilities.DisplayNameFormat(s.Account.DisplayName), - s.Account.Username, + utilities.DisplayNameFormat(s.Account.DisplayName), s.Account.Username, utilities.HeaderFormat("CONTENT:"), - utilities.WrapLines(s.Content, "\n ", 80), + utilities.WrapLines(utilities.StripHTMLTags(s.Content), "\n ", 80), utilities.HeaderFormat("STATUS ID:"), s.ID, utilities.HeaderFormat("CREATED AT:"), diff --git a/internal/model/timeline.go b/internal/model/timeline.go index 5b8ee26..a150e81 100644 --- a/internal/model/timeline.go +++ b/internal/model/timeline.go @@ -19,7 +19,7 @@ func (t Timeline) String() string { 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.DisplayNameFormat(status.Account.DisplayName) + " (@" + status.Account.Username + ")\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") diff --git a/internal/utilities/utilities.go b/internal/utilities/utilities.go index 31daf69..e2e4b0e 100644 --- a/internal/utilities/utilities.go +++ b/internal/utilities/utilities.go @@ -45,15 +45,24 @@ func StripHTMLTags(text string) string { case html.TextToken: text := token.Token().Data builder.WriteString(text) - case html.StartTagToken: + case html.StartTagToken, html.EndTagToken: tag := token.Token().String() - if tag == "
" { - builder.WriteString("\n") - } + builder.WriteString(transformTag(tag)) } } } +func transformTag(tag string) string { + switch tag { + case "
": + return "\n" + case "

", "

": + return "\n" + } + + return "" +} + func WrapLines(text, separator string, charLimit int) string { lines := strings.Split(text, "\n")