mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Show + federate emojis in accounts (#837)
* Start adding account emoji * get emojis serialized + deserialized nicely * update tests * set / retrieve emojis on accounts * show account emojis in web view * fetch emojis from db based on ids * fix typo in test * lint * fix pg migration * update tests * update emoji checking logic * update comment * clarify comments + add some spacing * tidy up loops a lil (thanks kim)
This commit is contained in:
@ -159,8 +159,29 @@ func (c *converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A
|
||||
fields = append(fields, mField)
|
||||
}
|
||||
|
||||
// account emojis
|
||||
emojis := []model.Emoji{}
|
||||
// TODO: account emojis
|
||||
gtsEmojis := a.Emojis
|
||||
if len(a.EmojiIDs) > len(gtsEmojis) {
|
||||
gtsEmojis = []*gtsmodel.Emoji{}
|
||||
for _, emojiID := range a.EmojiIDs {
|
||||
emoji, err := c.db.GetEmojiByID(ctx, emojiID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("AccountToAPIAccountPublic: error getting emoji %s from database: %s", emojiID, err)
|
||||
}
|
||||
gtsEmojis = append(gtsEmojis, emoji)
|
||||
}
|
||||
}
|
||||
for _, emoji := range gtsEmojis {
|
||||
if *emoji.Disabled {
|
||||
continue
|
||||
}
|
||||
apiEmoji, err := c.EmojiToAPIEmoji(ctx, emoji)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("AccountToAPIAccountPublic: error converting emoji to api emoji: %s", err)
|
||||
}
|
||||
emojis = append(emojis, apiEmoji)
|
||||
}
|
||||
|
||||
var acct string
|
||||
if a.Domain != "" {
|
||||
@ -194,7 +215,7 @@ func (c *converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A
|
||||
FollowingCount: followingCount,
|
||||
StatusesCount: statusesCount,
|
||||
LastStatusAt: lastStatusAt,
|
||||
Emojis: emojis, // TODO: implement this
|
||||
Emojis: emojis,
|
||||
Fields: fields,
|
||||
Suspended: suspended,
|
||||
CustomCSS: a.CustomCSS,
|
||||
|
Reference in New Issue
Block a user