🐛 Trying to fix the message sender sometimes missing data

This commit is contained in:
2025-07-26 16:26:07 +08:00
parent cf9903e500
commit eaf0b366d3

View File

@@ -209,10 +209,18 @@ public partial class ChatService(
var members = await scopedCrs.ListRoomMembers(room.Id); var members = await scopedCrs.ListRoomMembers(room.Id);
if (sender.Account is null)
sender = await scopedCrs.LoadMemberAccount(sender);
if (sender.Account is null)
throw new InvalidOperationException(
"Sender account is null, this should never happen. Sender id: " +
sender.Id
);
var metaDict = var metaDict =
new Dictionary<string, object> new Dictionary<string, object>
{ {
["sender_name"] = sender.Nick ?? sender.Account.Nick, ["sender_name"] = sender.Nick ?? sender.Account!.Nick,
["user_id"] = sender.AccountId, ["user_id"] = sender.AccountId,
["sender_id"] = sender.Id, ["sender_id"] = sender.Id,
["message_id"] = message.Id, ["message_id"] = message.Id,
@@ -221,8 +229,8 @@ public partial class ChatService(
.Where(a => a.MimeType != null && a.MimeType.StartsWith("image")) .Where(a => a.MimeType != null && a.MimeType.StartsWith("image"))
.Select(a => a.Id).ToList(), .Select(a => a.Id).ToList(),
}; };
if (sender.Account.Profile is not { Picture: null }) if (sender.Account!.Profile is not { Picture: null })
metaDict["pfp"] = sender.Account.Profile.Picture.Id; metaDict["pfp"] = sender.Account!.Profile.Picture.Id;
if (!string.IsNullOrEmpty(room.Name)) if (!string.IsNullOrEmpty(room.Name))
metaDict["room_name"] = room.Name; metaDict["room_name"] = room.Name;