enbas/internal/printer/instance.go
Dan Anglin 28bf902599
fix: improve how lists are displayed
Improve how ordered and unordered lists are displayed within the
contents of a status by adding indentation when a list item is wrapped.

Changes:

- fix: improve how ordered and unordered lists are displayed in status
  and status list views.
- fix: improve how media attachments are displayed in status list views.
- refactor: move the line wrapping and HTML converting functions from
  utilities to the internal printer package.
- refactor: the convertHTMLToText now (optionally) applies line
  wrapping after conversion.
2024-07-08 22:53:13 +01:00

42 lines
1.3 KiB
Go

// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (
"strings"
"codeflow.dananglin.me.uk/apollo/enbas/internal/model"
)
func (p Printer) PrintInstance(instance model.InstanceV2) {
var builder strings.Builder
builder.WriteString("\n" + p.headerFormat("INSTANCE TITLE:"))
builder.WriteString("\n" + instance.Title)
builder.WriteString("\n\n" + p.headerFormat("INSTANCE DESCRIPTION:"))
builder.WriteString("\n" + p.wrapLines(instance.DescriptionText, 0))
builder.WriteString("\n\n" + p.headerFormat("DOMAIN:"))
builder.WriteString("\n" + instance.Domain)
builder.WriteString("\n\n" + p.headerFormat("TERMS AND CONDITIONS:"))
builder.WriteString("\n" + p.wrapLines(instance.TermsText, 2))
builder.WriteString("\n\n" + p.headerFormat("VERSION:"))
builder.WriteString("\nRunning GoToSocial " + instance.Version)
builder.WriteString("\n\n" + p.headerFormat("CONTACT:"))
builder.WriteString("\n" + p.fieldFormat("Name:"))
builder.WriteString(" " + instance.Contact.Account.DisplayName)
builder.WriteString("\n" + p.fieldFormat("Username:"))
builder.WriteString(" " + instance.Contact.Account.Acct)
builder.WriteString("\n" + p.fieldFormat("Email:"))
builder.WriteString(" " + instance.Contact.Email)
builder.WriteString("\n\n")
p.print(builder.String())
}