From 0bbd322c2eff34d137bb9b5f5c1b845e8453d107 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Fri, 30 May 2025 13:22:50 +0800 Subject: [PATCH] :bug: Trying to fix message notification --- DysonNetwork.Sphere/Chat/ChatService.cs | 28 +++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/DysonNetwork.Sphere/Chat/ChatService.cs b/DysonNetwork.Sphere/Chat/ChatService.cs index 8dcee64..6f3a49d 100644 --- a/DysonNetwork.Sphere/Chat/ChatService.cs +++ b/DysonNetwork.Sphere/Chat/ChatService.cs @@ -11,7 +11,8 @@ public class ChatService( AppDatabase db, FileService fs, IServiceScopeFactory scopeFactory, - IRealtimeService realtime + IRealtimeService realtime, + ILogger logger ) { private const string ChatFileUsageIdentifier = "chat"; @@ -35,7 +36,19 @@ public class ChatService( } // Then start the delivery process - _ = Task.Run(() => DeliverMessageAsync(message, sender, room)); + _ = Task.Run(async () => + { + try + { + await DeliverMessageAsync(message, sender, room); + } + catch (Exception ex) + { + // Log the exception properly + // Consider using ILogger or your logging framework + logger.LogError($"Error when delivering message: {ex.Message}"); + } + }); return message; } @@ -61,6 +74,17 @@ public class ChatService( { Topic = "messages.new", Title = $"{sender.Nick ?? sender.Account.Nick} ({roomSubject})", + Content = !string.IsNullOrEmpty(message.Content) + ? message.Content[..Math.Min(message.Content.Length, 100)] + : "", + Meta = new Dictionary + { + ["message_id"] = message.Id, + ["room_id"] = room.Id, + ["images"] = message.Attachments + .Where(a => a.MimeType != null && a.MimeType.StartsWith("image")) + .Select(a => a.Id).ToList() + } }; List accountsToNotify = [];