From d5230852cf4da238a0d3acb219f9049e9d669969 Mon Sep 17 00:00:00 2001 From: r Date: Wed, 26 Feb 2020 11:27:42 +0000 Subject: Gracefully handle the elephant --- mastodon/accounts.go | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) (limited to 'mastodon') diff --git a/mastodon/accounts.go b/mastodon/accounts.go index 86581ec..c02f0bd 100644 --- a/mastodon/accounts.go +++ b/mastodon/accounts.go @@ -15,26 +15,26 @@ type AccountPleroma struct { // Account hold information for mastodon account. type Account struct { - ID string `json:"id"` - Username string `json:"username"` - Acct string `json:"acct"` - DisplayName string `json:"display_name"` - Locked bool `json:"locked"` - CreatedAt time.Time `json:"created_at"` - FollowersCount int64 `json:"followers_count"` - FollowingCount int64 `json:"following_count"` - StatusesCount int64 `json:"statuses_count"` - Note string `json:"note"` - URL string `json:"url"` - Avatar string `json:"avatar"` - AvatarStatic string `json:"avatar_static"` - Header string `json:"header"` - HeaderStatic string `json:"header_static"` - Emojis []Emoji `json:"emojis"` - Moved *Account `json:"moved"` - Fields []Field `json:"fields"` - Bot bool `json:"bot"` - Pleroma AccountPleroma `json:"pleroma"` + ID string `json:"id"` + Username string `json:"username"` + Acct string `json:"acct"` + DisplayName string `json:"display_name"` + Locked bool `json:"locked"` + CreatedAt time.Time `json:"created_at"` + FollowersCount int64 `json:"followers_count"` + FollowingCount int64 `json:"following_count"` + StatusesCount int64 `json:"statuses_count"` + Note string `json:"note"` + URL string `json:"url"` + Avatar string `json:"avatar"` + AvatarStatic string `json:"avatar_static"` + Header string `json:"header"` + HeaderStatic string `json:"header_static"` + Emojis []Emoji `json:"emojis"` + Moved *Account `json:"moved"` + Fields []Field `json:"fields"` + Bot bool `json:"bot"` + Pleroma *AccountPleroma `json:"pleroma"` } // Field is a Mastodon account profile field. @@ -60,6 +60,15 @@ func (c *Client) GetAccount(ctx context.Context, id string) (*Account, error) { if err != nil { return nil, err } + if account.Pleroma == nil { + rs, err := c.GetAccountRelationships(ctx, []string{id}) + if err != nil { + return nil, err + } + if len(rs) > 0 { + account.Pleroma = &AccountPleroma{*rs[0]} + } + } return &account, nil } -- cgit v1.2.3