From b91ebe58640b11e51427d626e92648493d0ae641 Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Sun, 19 May 2024 15:26:13 +0100 Subject: [PATCH] fix: update internal models for GoToSocial v0.15.0 Update the internal models for the client in line with the GoToSocial v0.15.0 API. Improve the output of the instance information. --- internal/model/account.go | 69 ++++++++++++++++++----------------- internal/model/instance_v2.go | 47 +++++++++++++++--------- internal/model/status.go | 4 +- 3 files changed, 67 insertions(+), 53 deletions(-) diff --git a/internal/model/account.go b/internal/model/account.go index a87e29e..febb024 100644 --- a/internal/model/account.go +++ b/internal/model/account.go @@ -8,32 +8,34 @@ import ( ) type Account struct { - Acct string `json:"acct"` - Avatar string `json:"avatar"` - AvatarStatic string `json:"avatar_static"` - CustomCSS string `json:"custom_css"` - Header string `json:"header"` - HeaderStatic string `json:"header_static"` - ID string `json:"id"` - LastStatusAt string `json:"last_status_at"` - DisplayName string `json:"display_name"` - Emojis []Emoji `json:"emojis"` - EnableRSS bool `json:"enable_rss"` - Bot bool `json:"bot"` - Locked bool `json:"locked"` - Suspended bool `json:"suspended"` - Discoverable bool `json:"discoverable"` - Fields []Field `json:"fields"` - FollowersCount int `json:"followers_count"` - FollowingCount int `json:"following_count"` - CreatedAt time.Time `json:"created_at"` - MuteExpiresAt time.Time `json:"mute_expires_at"` - Note string `json:"note"` - Role AccountRole `json:"role"` - Source Source `json:"source"` - StatusCount int `json:"statuses_count"` - URL string `json:"url"` - Username string `json:"username"` + Acct string `json:"acct"` + Avatar string `json:"avatar"` + AvatarStatic string `json:"avatar_static"` + CustomCSS string `json:"custom_css"` + Header string `json:"header"` + HeaderStatic string `json:"header_static"` + ID string `json:"id"` + LastStatusAt string `json:"last_status_at"` + DisplayName string `json:"display_name"` + Emojis []Emoji `json:"emojis"` + EnableRSS bool `json:"enable_rss"` + Bot bool `json:"bot"` + Locked bool `json:"locked"` + Suspended bool `json:"suspended"` + Discoverable bool `json:"discoverable"` + HideCollections bool `json:"hide_collections"` + Fields []Field `json:"fields"` + FollowersCount int `json:"followers_count"` + FollowingCount int `json:"following_count"` + CreatedAt time.Time `json:"created_at"` + MuteExpiresAt time.Time `json:"mute_expires_at"` + Note string `json:"note"` + Role AccountRole `json:"role"` + Source Source `json:"source"` + StatusCount int `json:"statuses_count"` + Theme string `json:"theme"` + URL string `json:"url"` + Username string `json:"username"` } type AccountRole struct { @@ -41,13 +43,14 @@ type AccountRole struct { } type Source struct { - Fields []Field `json:"fields"` - FollowRequestCount int `json:"follow_requests_count"` - Language string `json:"language"` - Note string `json:"note"` - Privacy string `json:"string"` - Sensitive bool `json:"sensitive"` - StatusContentType string `json:"status_content_type"` + Fields []Field `json:"fields"` + FollowRequestCount int `json:"follow_requests_count"` + Language string `json:"language"` + Note string `json:"note"` + Privacy string `json:"string"` + Sensitive bool `json:"sensitive"` + StatusContentType string `json:"status_content_type"` + AlsoKnownAsURIs []string `json:"also_known_as_uris"` } type Field struct { diff --git a/internal/model/instance_v2.go b/internal/model/instance_v2.go index 78b35d5..2b6f36b 100644 --- a/internal/model/instance_v2.go +++ b/internal/model/instance_v2.go @@ -7,20 +7,22 @@ import ( ) type InstanceV2 struct { - AccountDomain string `json:"account_domain"` - Configuration InstanceConfiguration `json:"configuration"` - Contact InstanceV2Contact `json:"contact"` - Description string `json:"description"` - Domain string `json:"domain"` - Languages []string `json:"languages"` - Registrations InstanceV2Registrations `json:"registrations"` - Rules []InstanceRule `json:"rules"` - SourceURL string `json:"source_url"` - Terms string `json:"terms"` - Thumbnail InstanceV2Thumbnail `json:"thumbnail"` - Title string `json:"title"` - Usage InstanceV2Usage `json:"usage"` - Version string `json:"version"` + AccountDomain string `json:"account_domain"` + Configuration InstanceConfiguration `json:"configuration"` + Contact InstanceV2Contact `json:"contact"` + Description string `json:"description"` + DescriptionText string `json:"description_text"` + Domain string `json:"domain"` + Languages []string `json:"languages"` + Registrations InstanceV2Registrations `json:"registrations"` + Rules []InstanceRule `json:"rules"` + SourceURL string `json:"source_url"` + Terms string `json:"terms"` + TermsText string `json:"terms_text"` + Thumbnail InstanceV2Thumbnail `json:"thumbnail"` + Title string `json:"title"` + Usage InstanceV2Usage `json:"usage"` + Version string `json:"version"` } type InstanceConfiguration struct { @@ -95,7 +97,7 @@ type InstanceV2Thumbnail struct { ThumbnailDescription string `json:"thumbnail_description"` ThumbnailType string `json:"thumbnail_type"` URL string `json:"url"` - Version InstanceV2ThumbnailVersions `json:"versions"` + Versions InstanceV2ThumbnailVersions `json:"versions"` } type InstanceV2ThumbnailVersions struct { @@ -114,7 +116,13 @@ type InstanceV2Users struct { func (i InstanceV2) String() string { format := ` %s - %s - %s + %s + +%s + %s + +%s + %s %s %s @@ -130,11 +138,14 @@ func (i InstanceV2) String() string { return fmt.Sprintf( format, - utilities.HeaderFormat("INSTANCE:"), + utilities.HeaderFormat("INSTANCE TITLE:"), i.Title, - i.Description, + utilities.HeaderFormat("INSTANCE DESCRIPTION:"), + utilities.WrapLines(i.DescriptionText, "\n ", 80), utilities.HeaderFormat("DOMAIN:"), i.Domain, + utilities.HeaderFormat("TERMS AND CONDITIONS:"), + utilities.WrapLines(i.TermsText, "\n ", 80), utilities.HeaderFormat("VERSION:"), i.Version, utilities.HeaderFormat("CONTACT:"), diff --git a/internal/model/status.go b/internal/model/status.go index 48a5bca..29dd695 100644 --- a/internal/model/status.go +++ b/internal/model/status.go @@ -28,7 +28,7 @@ type Status struct { Poll Poll `json:"poll"` Reblog StatusReblogged `json:"reblog"` Reblogged bool `json:"reblogged"` - RebloggsCount int `json:"reblogs_count"` + ReblogsCount int `json:"reblogs_count"` RepliesCount int `json:"replies_count"` Sensitive bool `json:"sensitive"` SpolierText string `json:"spoiler_text"` @@ -188,7 +188,7 @@ func (s Status) String() string { utilities.HeaderFormat("CREATED AT:"), utilities.FormatTime(s.CreatedAt), utilities.HeaderFormat("STATS:"), - s.RebloggsCount, + s.ReblogsCount, s.FavouritesCount, s.RepliesCount, utilities.HeaderFormat("VISIBILITY:"),