feat: add last message cache to gateway

This commit is contained in:
alyssa 2025-04-01 10:48:20 +00:00
parent 15c992c572
commit a8664665a6
10 changed files with 172 additions and 18 deletions

View file

@ -246,7 +246,7 @@ public class ProxyService
ChannelId = rootChannel.Id,
ThreadId = threadId,
MessageId = trigger.Id,
Name = await FixSameName(messageChannel.Id, ctx, match.Member),
Name = await FixSameName(trigger.GuildId!.Value, messageChannel.Id, ctx, match.Member),
AvatarUrl = AvatarUtils.TryRewriteCdnUrl(match.Member.ProxyAvatar(ctx)),
Content = content,
Attachments = trigger.Attachments,
@ -458,11 +458,11 @@ public class ProxyService
};
}
private async Task<string> FixSameName(ulong channelId, MessageContext ctx, ProxyMember member)
private async Task<string> FixSameName(ulong guildId, ulong channelId, MessageContext ctx, ProxyMember member)
{
var proxyName = member.ProxyName(ctx);
var lastMessage = _lastMessage.GetLastMessage(channelId)?.Previous;
var lastMessage = (await _lastMessage.GetLastMessage(guildId, channelId))?.Previous;
if (lastMessage == null)
// cache is out of date or channel is empty.
return proxyName;