From 7c6c0cd547f356d5309bda2478a69ea9346c74b6 Mon Sep 17 00:00:00 2001 From: f0x52 Date: Tue, 21 Jun 2022 10:48:42 +0200 Subject: [frontend] Profile pages upgrade (#640) * fix css indentation * profile styling update * update status styling to match profile * empty header fix * generate random avatars for thread views * appease the linter gods * upgrade deps * turn profile accent into border + $bg background * upgrade deps * small accessibility tweaks Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com> --- internal/web/thread.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'internal/web/thread.go') diff --git a/internal/web/thread.go b/internal/web/thread.go index 3db4952c7..d3b92bde3 100644 --- a/internal/web/thread.go +++ b/internal/web/thread.go @@ -23,6 +23,7 @@ import ( "encoding/json" "errors" "fmt" + "math/rand" "net/http" "strings" @@ -35,6 +36,21 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/oauth" ) +var randAvatars = make(map[string]string) + +func (m *Module) ensureAvatar(status apimodel.Status) { + if status.Account.Avatar == "" && len(m.defaultAvatars) > 0 { + avatar, ok := randAvatars[status.Account.ID] + if !ok { + //nolint:gosec + randomIndex := rand.Intn(len(m.defaultAvatars)) + avatar = m.defaultAvatars[randomIndex] + randAvatars[status.Account.ID] = avatar + } + status.Account.Avatar = avatar + } +} + func (m *Module) threadGETHandler(c *gin.Context) { ctx := c.Request.Context() @@ -104,6 +120,16 @@ func (m *Module) threadGETHandler(c *gin.Context) { return } + m.ensureAvatar(*status) + + for _, status := range context.Descendants { + m.ensureAvatar(status) + } + + for _, status := range context.Ancestors { + m.ensureAvatar(status) + } + c.HTML(http.StatusOK, "thread.tmpl", gin.H{ "instance": instance, "status": status, -- cgit v1.2.3