transform p tags to line breaks, run StripHTMLTags for status content

This commit is contained in:
Dan Anglin 2024-05-26 13:14:00 +01:00
parent 6844c6e348
commit cad41d792f
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
3 changed files with 16 additions and 9 deletions

View file

@ -158,7 +158,6 @@ func (s Status) String() string {
%s %s
%s %s
%s %s
%s %s
@ -179,10 +178,9 @@ func (s Status) String() string {
return fmt.Sprintf( return fmt.Sprintf(
format, format,
utilities.DisplayNameFormat(s.Account.DisplayName), utilities.DisplayNameFormat(s.Account.DisplayName), s.Account.Username,
s.Account.Username,
utilities.HeaderFormat("CONTENT:"), utilities.HeaderFormat("CONTENT:"),
utilities.WrapLines(s.Content, "\n ", 80), utilities.WrapLines(utilities.StripHTMLTags(s.Content), "\n ", 80),
utilities.HeaderFormat("STATUS ID:"), utilities.HeaderFormat("STATUS ID:"),
s.ID, s.ID,
utilities.HeaderFormat("CREATED AT:"), utilities.HeaderFormat("CREATED AT:"),

View file

@ -19,7 +19,7 @@ func (t Timeline) String() string {
builder.WriteString(utilities.HeaderFormat(t.Name) + "\n\n") builder.WriteString(utilities.HeaderFormat(t.Name) + "\n\n")
for _, status := range t.Statuses { 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.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(utilities.FieldFormat("ID:") + " " + status.ID + "\t" + utilities.FieldFormat("Created at:") + " " + utilities.FormatTime(status.CreatedAt) + "\n")
builder.WriteString(separator + "\n") builder.WriteString(separator + "\n")

View file

@ -45,13 +45,22 @@ func StripHTMLTags(text string) string {
case html.TextToken: case html.TextToken:
text := token.Token().Data text := token.Token().Data
builder.WriteString(text) builder.WriteString(text)
case html.StartTagToken: case html.StartTagToken, html.EndTagToken:
tag := token.Token().String() tag := token.Token().String()
if tag == "<br>" { builder.WriteString(transformTag(tag))
builder.WriteString("\n")
} }
} }
}
func transformTag(tag string) string {
switch tag {
case "<br>":
return "\n"
case "<p>", "</p>":
return "\n"
} }
return ""
} }
func WrapLines(text, separator string, charLimit int) string { func WrapLines(text, separator string, charLimit int) string {