summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltofrontend.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2025-01-30 12:52:03 +0000
committerLibravatar GitHub <noreply@github.com>2025-01-30 13:52:03 +0100
commit91cef3495d40d2af06b448b5871b1a8101fd6515 (patch)
tree31b053266dda48310ecc827145f02e731b8a0569 /internal/typeutils/internaltofrontend.go
parent[bugfix] harden checks for remotes masquerading as local, and return correct ... (diff)
downloadgotosocial-91cef3495d40d2af06b448b5871b1a8101fd6515.tar.xz
[bugfix] Missing emoji urls (#3707)
* filter out emoji that are uncached when converting to frontend models * some very small fixups * remove TODO notice
Diffstat (limited to 'internal/typeutils/internaltofrontend.go')
-rw-r--r--internal/typeutils/internaltofrontend.go20
1 files changed, 14 insertions, 6 deletions
diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go
index 6739d0540..d9c8748f5 100644
--- a/internal/typeutils/internaltofrontend.go
+++ b/internal/typeutils/internaltofrontend.go
@@ -2641,28 +2641,36 @@ func (c *Converter) FilterStatusToAPIFilterStatus(ctx context.Context, filterSta
func (c *Converter) convertEmojisToAPIEmojis(ctx context.Context, emojis []*gtsmodel.Emoji, emojiIDs []string) ([]apimodel.Emoji, error) {
var errs gtserror.MultiError
+ // GTS model attachments were not populated
if len(emojis) == 0 && len(emojiIDs) > 0 {
- // GTS model attachments were not populated
-
var err error
// Fetch GTS models for emoji IDs
emojis, err = c.state.DB.GetEmojisByIDs(ctx, emojiIDs)
if err != nil {
- errs.Appendf("error fetching emojis from database: %w", err)
+ return nil, gtserror.Newf("db error fetching emojis: %w", err)
}
}
- // Preallocate expected frontend slice
+ // Preallocate expected frontend slice of emojis.
apiEmojis := make([]apimodel.Emoji, 0, len(emojis))
-
- // Convert GTS models to frontend models
for _, emoji := range emojis {
+
+ // Skip adding emojis that are
+ // uncached, the empty URLs can
+ // cause issues with some clients.
+ if !*emoji.Cached {
+ continue
+ }
+
+ // Convert each to a frontend API model emoji.
apiEmoji, err := c.EmojiToAPIEmoji(ctx, emoji)
if err != nil {
errs.Appendf("error converting emoji %s to api emoji: %w", emoji.ID, err)
continue
}
+
+ // Append converted emoji to return slice.
apiEmojis = append(apiEmojis, apiEmoji)
}