Compare commits
2 commits
72c2c4796a
...
0928803a34
Author | SHA1 | Date | |
---|---|---|---|
0928803a34 | |||
f4af81947e |
5 changed files with 49 additions and 32 deletions
|
@ -67,9 +67,9 @@ func (a Account) String() string {
|
|||
%s
|
||||
|
||||
%s
|
||||
Followers: %d
|
||||
Following: %d
|
||||
Statuses: %d
|
||||
%s %d
|
||||
%s %d
|
||||
%s %d
|
||||
|
||||
%s
|
||||
%s
|
||||
|
@ -84,28 +84,28 @@ func (a Account) String() string {
|
|||
for _, field := range a.Fields {
|
||||
metadata += fmt.Sprintf(
|
||||
"\n %s: %s",
|
||||
field.Name,
|
||||
utilities.FieldFormat(field.Name),
|
||||
utilities.StripHTMLTags(field.Value),
|
||||
)
|
||||
}
|
||||
|
||||
return fmt.Sprintf(
|
||||
format,
|
||||
a.DisplayName,
|
||||
utilities.DisplayNameFormat(a.DisplayName),
|
||||
a.Username,
|
||||
utilities.Header("ACCOUNT ID:"),
|
||||
utilities.HeaderFormat("ACCOUNT ID:"),
|
||||
a.ID,
|
||||
utilities.Header("JOINED ON:"),
|
||||
utilities.HeaderFormat("JOINED ON:"),
|
||||
utilities.FormatDate(a.CreatedAt),
|
||||
utilities.Header("STATS:"),
|
||||
a.FollowersCount,
|
||||
a.FollowingCount,
|
||||
a.StatusCount,
|
||||
utilities.Header("BIOGRAPHY:"),
|
||||
utilities.HeaderFormat("STATS:"),
|
||||
utilities.FieldFormat("Followers:"), a.FollowersCount,
|
||||
utilities.FieldFormat("Followeing:"), a.FollowingCount,
|
||||
utilities.FieldFormat("Statuses:"), a.StatusCount,
|
||||
utilities.HeaderFormat("BIOGRAPHY:"),
|
||||
utilities.WrapLine(utilities.StripHTMLTags(a.Note), "\n ", 80),
|
||||
utilities.Header("METADATA:"),
|
||||
utilities.HeaderFormat("METADATA:"),
|
||||
metadata,
|
||||
utilities.Header("ACCOUNT URL:"),
|
||||
utilities.HeaderFormat("ACCOUNT URL:"),
|
||||
a.URL,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -123,23 +123,26 @@ func (i InstanceV2) String() string {
|
|||
Running GoToSocial %s
|
||||
|
||||
%s
|
||||
name: %s
|
||||
username: %s
|
||||
email: %s
|
||||
%s %s
|
||||
%s %s
|
||||
%s %s
|
||||
`
|
||||
|
||||
return fmt.Sprintf(
|
||||
format,
|
||||
utilities.Header("INSTANCE:"),
|
||||
utilities.HeaderFormat("INSTANCE:"),
|
||||
i.Title,
|
||||
i.Description,
|
||||
utilities.Header("DOMAIN:"),
|
||||
utilities.HeaderFormat("DOMAIN:"),
|
||||
i.Domain,
|
||||
utilities.Header("VERSION:"),
|
||||
utilities.HeaderFormat("VERSION:"),
|
||||
i.Version,
|
||||
utilities.Header("CONTACT:"),
|
||||
i.Contact.Account.DisplayName,
|
||||
utilities.HeaderFormat("CONTACT:"),
|
||||
utilities.FieldFormat("Name:"),
|
||||
utilities.DisplayNameFormat(i.Contact.Account.DisplayName),
|
||||
utilities.FieldFormat("Username:"),
|
||||
i.Contact.Account.Username,
|
||||
utilities.FieldFormat("Email:"),
|
||||
i.Contact.Email,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -179,21 +179,21 @@ func (s Status) String() string {
|
|||
|
||||
return fmt.Sprintf(
|
||||
format,
|
||||
s.Account.DisplayName,
|
||||
utilities.DisplayNameFormat(s.Account.DisplayName),
|
||||
s.Account.Username,
|
||||
utilities.Header("CONTENT:"),
|
||||
utilities.HeaderFormat("CONTENT:"),
|
||||
utilities.StripHTMLTags(s.Content),
|
||||
utilities.Header("STATUS ID:"),
|
||||
utilities.HeaderFormat("STATUS ID:"),
|
||||
s.ID,
|
||||
utilities.Header("CREATED AT:"),
|
||||
utilities.HeaderFormat("CREATED AT:"),
|
||||
utilities.FormatTime(s.CreatedAt),
|
||||
utilities.Header("STATS:"),
|
||||
utilities.HeaderFormat("STATS:"),
|
||||
s.RebloggsCount,
|
||||
s.FavouritesCount,
|
||||
s.RepliesCount,
|
||||
utilities.Header("VISIBILITY:"),
|
||||
utilities.HeaderFormat("VISIBILITY:"),
|
||||
s.Visibility,
|
||||
utilities.Header("URL:"),
|
||||
utilities.HeaderFormat("URL:"),
|
||||
s.URL,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -19,9 +19,9 @@ func (t Timeline) String() string {
|
|||
builder.WriteString(t.Name + "\n" + separator + "\n")
|
||||
|
||||
for _, status := range t.Statuses {
|
||||
builder.WriteString(status.Account.DisplayName + " (@" + status.Account.Username + ")\n\n")
|
||||
builder.WriteString(utilities.DisplayNameFormat(status.Account.DisplayName) + " (@" + status.Account.Username + ")\n\n")
|
||||
builder.WriteString(utilities.WrapLine(utilities.StripHTMLTags(status.Content), "\n", 80) + "\n\n")
|
||||
builder.WriteString("ID: " + status.ID + "\tCreated 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")
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package utilities
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode"
|
||||
|
@ -11,6 +12,8 @@ import (
|
|||
const (
|
||||
reset = "\033[0m"
|
||||
boldblue = "\033[34;1m"
|
||||
boldmagenta = "\033[35;1m"
|
||||
green = "\033[32m"
|
||||
)
|
||||
|
||||
func StripHTMLTags(text string) string {
|
||||
|
@ -52,10 +55,21 @@ func WrapLine(line, separator string, charLimit int) string {
|
|||
return builder.String()
|
||||
}
|
||||
|
||||
func Header(text string) string {
|
||||
func HeaderFormat(text string) string {
|
||||
return boldblue + text + reset
|
||||
}
|
||||
|
||||
func FieldFormat(text string) string {
|
||||
return green + text + reset
|
||||
}
|
||||
|
||||
func DisplayNameFormat(text string) string {
|
||||
// use this pattern to remove all emoji strings
|
||||
pattern := regexp.MustCompile(`\s:[A-Za-z0-9]*:`)
|
||||
|
||||
return boldmagenta + pattern.ReplaceAllString(text, "") + reset
|
||||
}
|
||||
|
||||
func FormatDate(date time.Time) string {
|
||||
return date.Local().Format("02 Jan 2006")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue