From d871f2c142e065ae93bd897f92a75c8262943055 Mon Sep 17 00:00:00 2001 From: Toutsu Date: Wed, 20 May 2026 12:25:07 +0300 Subject: [PATCH] feat(discord): implement SendGroupMessageAsync in DiscordPlatformMessenger --- .../Infrastructure/Discord/DiscordPlatformMessenger.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs b/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs index 3d68f36..e4ab108 100644 --- a/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs +++ b/src/GmRelay.DiscordBot/Infrastructure/Discord/DiscordPlatformMessenger.cs @@ -51,9 +51,15 @@ public sealed class DiscordPlatformMessenger( }); } - public Task SendGroupMessageAsync(PlatformGroup group, string htmlText, CancellationToken ct) + public async Task SendGroupMessageAsync(PlatformGroup group, string htmlText, CancellationToken ct) { - return Task.CompletedTask; + var channelIdStr = group.ExternalChannelId ?? group.ExternalGroupId + ?? throw new InvalidOperationException("Group has no ExternalChannelId or ExternalGroupId."); + + if (!ulong.TryParse(channelIdStr, out var channelId)) + throw new InvalidOperationException($"Invalid Discord channel/group ID: '{channelIdStr}'."); + + await restClient.SendMessageAsync(channelId, htmlText); } public Task SendPrivateMessageAsync(PlatformPrivateMessage message, CancellationToken ct)