[backend/masto-client] Parse emoji in display name & fields on local user update (ISH-296)
This commit is contained in:
parent
a75fcfa43b
commit
fb6e0cf9f3
2 changed files with 22 additions and 10 deletions
|
@ -30,8 +30,7 @@ public class AccountController(
|
||||||
NoteRenderer noteRenderer,
|
NoteRenderer noteRenderer,
|
||||||
UserService userSvc,
|
UserService userSvc,
|
||||||
ActivityPub.UserResolver userResolver,
|
ActivityPub.UserResolver userResolver,
|
||||||
DriveService driveSvc,
|
DriveService driveSvc
|
||||||
EmojiService emojiSvc
|
|
||||||
) : ControllerBase
|
) : ControllerBase
|
||||||
{
|
{
|
||||||
[HttpGet("verify_credentials")]
|
[HttpGet("verify_credentials")]
|
||||||
|
@ -118,14 +117,6 @@ public class AccountController(
|
||||||
user.BannerUrl = banner.Url;
|
user.BannerUrl = banner.Url;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.Emojis = [];
|
|
||||||
|
|
||||||
if (user.UserProfile.Description != null)
|
|
||||||
{
|
|
||||||
var nodes = MfmParser.Parse(user.UserProfile.Description);
|
|
||||||
user.Emojis = (await emojiSvc.ResolveEmoji(nodes)).Select(p => p.Id).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
user = await userSvc.UpdateLocalUserAsync(user, prevAvatarId, prevBannerId);
|
user = await userSvc.UpdateLocalUserAsync(user, prevAvatarId, prevBannerId);
|
||||||
|
|
||||||
var res = await userRenderer.RenderAsync(user, user.UserProfile, source: true);
|
var res = await userRenderer.RenderAsync(user, user.UserProfile, source: true);
|
||||||
|
|
|
@ -316,6 +316,27 @@ public class UserService(
|
||||||
|
|
||||||
user.Tags = ResolveHashtags(user.UserProfile.Description);
|
user.Tags = ResolveHashtags(user.UserProfile.Description);
|
||||||
|
|
||||||
|
user.Emojis = [];
|
||||||
|
|
||||||
|
if (user.UserProfile.Description != null)
|
||||||
|
{
|
||||||
|
var nodes = MfmParser.Parse(user.UserProfile.Description);
|
||||||
|
user.Emojis.AddRange((await emojiSvc.ResolveEmoji(nodes)).Select(p => p.Id).ToList());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.DisplayName != null)
|
||||||
|
{
|
||||||
|
var nodes = MfmParser.Parse(user.DisplayName);
|
||||||
|
user.Emojis.AddRange((await emojiSvc.ResolveEmoji(nodes)).Select(p => p.Id).ToList());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.UserProfile.Fields.Length != 0)
|
||||||
|
{
|
||||||
|
var input = user.UserProfile.Fields.Select(p => $"{p.Name} {p.Value}");
|
||||||
|
var nodes = MfmParser.Parse(string.Join('\n', input));
|
||||||
|
user.Emojis.AddRange((await emojiSvc.ResolveEmoji(nodes)).Select(p => p.Id).ToList());
|
||||||
|
}
|
||||||
|
|
||||||
db.Update(user);
|
db.Update(user);
|
||||||
db.Update(user.UserProfile);
|
db.Update(user.UserProfile);
|
||||||
await db.SaveChangesAsync();
|
await db.SaveChangesAsync();
|
||||||
|
|
Loading…
Add table
Reference in a new issue