diff options
author | 2025-01-30 12:52:03 +0000 | |
---|---|---|
committer | 2025-01-30 13:52:03 +0100 | |
commit | 91cef3495d40d2af06b448b5871b1a8101fd6515 (patch) | |
tree | 31b053266dda48310ecc827145f02e731b8a0569 /internal/typeutils | |
parent | [bugfix] harden checks for remotes masquerading as local, and return correct ... (diff) | |
download | gotosocial-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')
-rw-r--r-- | internal/typeutils/internaltofrontend.go | 20 |
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) } |