diff options
author | r <r@freesoftwareextremist.com> | 2024-02-12 05:51:06 +0000 |
---|---|---|
committer | r <r@freesoftwareextremist.com> | 2024-02-12 05:51:06 +0000 |
commit | 6ad1c5436ae4b623143db9def4b160213456a69e (patch) | |
tree | 62cb56595a2cd5d1eb19b68df9fd2aec44368fc5 | |
parent | 11ea3b4d47a732fe1c6abc39ce452f899f70859f (diff) | |
download | bloat-6ad1c5436ae4b623143db9def4b160213456a69e.tar.gz bloat-6ad1c5436ae4b623143db9def4b160213456a69e.zip |
Show follow request count on user page
-rw-r--r-- | mastodon/accounts.go | 14 | ||||
-rw-r--r-- | service/service.go | 11 | ||||
-rw-r--r-- | templates/user.tmpl | 4 |
3 files changed, 21 insertions, 8 deletions
diff --git a/mastodon/accounts.go b/mastodon/accounts.go index 1a0ac2e..31021fd 100644 --- a/mastodon/accounts.go +++ b/mastodon/accounts.go @@ -40,6 +40,9 @@ type Account struct { Bot bool `json:"bot"` Source *AccountSource `json:"source"` Pleroma *AccountPleroma `json:"pleroma"` + + // Duplicate field for compatibilty with Pleroma + FollowRequestsCount int64 `json:"follow_requests_count"` } // Field is a Mastodon account profile field. @@ -51,11 +54,12 @@ type Field struct { // AccountSource is a Mastodon account profile field. type AccountSource struct { - Privacy *string `json:"privacy"` - Sensitive *bool `json:"sensitive"` - Language *string `json:"language"` - Note *string `json:"note"` - Fields *[]Field `json:"fields"` + Privacy *string `json:"privacy"` + Sensitive *bool `json:"sensitive"` + Language *string `json:"language"` + Note *string `json:"note"` + Fields *[]Field `json:"fields"` + FollowRequestsCount int64 `json:"follow_requests_count"` } // GetAccount return Account. diff --git a/service/service.go b/service/service.go index 953a1b9..0245042 100644 --- a/service/service.go +++ b/service/service.go @@ -511,12 +511,19 @@ func (s *service) UserPage(c *client, id string, pageType string, MinID: minID, Limit: 20, } + isCurrent := c.s.UserID == id - user, err := c.GetAccount(c.ctx, id) + // Some fields like AccountSource are only available in the + // CurrentUser API + var user *mastodon.Account + if isCurrent { + user, err = c.GetAccountCurrentUser(c.ctx) + } else { + user, err = c.GetAccount(c.ctx, id) + } if err != nil { return } - isCurrent := c.s.UserID == user.ID switch pageType { case "": diff --git a/templates/user.tmpl b/templates/user.tmpl index f34a9df..4323b2f 100644 --- a/templates/user.tmpl +++ b/templates/user.tmpl @@ -110,7 +110,9 @@ - <a href="/user/{{.User.ID}}/likes">likes</a> - <a href="/user/{{.User.ID}}/mutes">mutes</a> - <a href="/user/{{.User.ID}}/blocks">blocks</a> - {{if .User.Locked}}- <a href="/user/{{.User.ID}}/requests">requests</a>{{end}} + {{if .User.Locked}}- <a href="/user/{{.User.ID}}/requests">requests ( + {{- if .User.FollowRequestsCount}}{{.User.FollowRequestsCount}}{{else}}{{.User.Source.FollowRequestsCount}}{{end -}} + )</a>{{end}} </div> {{end}} <div> |