diff --git a/KfChatDotNetBot/Services/BotServices.cs b/KfChatDotNetBot/Services/BotServices.cs
index 25e5d68..854a1ba 100644
--- a/KfChatDotNetBot/Services/BotServices.cs
+++ b/KfChatDotNetBot/Services/BotServices.cs
@@ -741,7 +741,16 @@ public class BotServices
private void DiscordOnConversationSummaryUpdate(object sender, DiscordConversationSummaryUpdateModel summary, string guildId)
{
_logger.Info($"Received a conversation summary update for guild {guildId}");
- var discordIcon = SettingsProvider.GetValueAsync(BuiltIn.Keys.DiscordIcon).Result;
+ var settings = SettingsProvider.GetMultipleValuesAsync([
+ BuiltIn.Keys.DiscordIcon, BuiltIn.Keys.DiscordBmjId, BuiltIn.Keys.DiscordOnlySendSummariesIncludingBmj
+ ]).Result;
+ var discordIcon = settings[BuiltIn.Keys.DiscordIcon];
+ if (settings[BuiltIn.Keys.DiscordOnlySendSummariesIncludingBmj].ToBoolean() &&
+ !summary.People.Contains(settings[BuiltIn.Keys.DiscordBmjId].Value ?? string.Empty))
+ {
+ _logger.Info($"Ignoring as BMJ's Discord ID '{settings[BuiltIn.Keys.DiscordBmjId].Value}' wasn't among the people listed for this conversation summary: {string.Join(", ", summary.People)}");
+ return;
+ }
_chatBot.SendChatMessage($"[img]{discordIcon.Value}[/img] {summary.Topic}: {summary.SummaryShort} 🤖🤖", true);
}
diff --git a/KfChatDotNetBot/Services/Discord.cs b/KfChatDotNetBot/Services/Discord.cs
index 5497adf..f4d14d4 100644
--- a/KfChatDotNetBot/Services/Discord.cs
+++ b/KfChatDotNetBot/Services/Discord.cs
@@ -316,6 +316,11 @@ public class DiscordConversationSummaryUpdateModel
public required string Topic { get; set; }
[JsonPropertyName("summ_short")]
public required string SummaryShort { get; set; }
+ ///
+ /// List of Discord IDs for people whose messages were used to generate the summary
+ ///
+ [JsonPropertyName("people")]
+ public required List People { get; set; }
}
// https://discord.com/developers/docs/resources/channel#channel-object-channel-types
diff --git a/KfChatDotNetBot/Settings/BuiltIn.cs b/KfChatDotNetBot/Settings/BuiltIn.cs
index 00a3fee..16a09dc 100644
--- a/KfChatDotNetBot/Settings/BuiltIn.cs
+++ b/KfChatDotNetBot/Settings/BuiltIn.cs
@@ -1068,6 +1068,14 @@ public static class BuiltIn
Description = "Working directory for BMJ's Twitch streams captured with streamlink",
Default = "/root/twitch/",
ValueType = SettingValueType.Text
+ },
+ new BuiltInSettingsModel
+ {
+ Key = Keys.DiscordOnlySendSummariesIncludingBmj,
+ Description = "Only send Discord conversation summaries to the chat where BMJ's Discord ID is listed as participating",
+ Default = "true",
+ ValueType = SettingValueType.Boolean,
+ Regex = BooleanRegex
}
];
@@ -1191,5 +1199,6 @@ public static class BuiltIn
public static string BotRateLimitCooldownAutoDeleteDelay = "Bot.RateLimit.CooldownAutoDeleteDelay";
public static string BotRateLimitExpiredEntryCleanupInterval = "Bot.RateLimit.ExpiredEntryCleanupInterval";
public static string CaptureStreamlinkBmjWorkingDirectory = "Bot.Streamlink.BmjWorkingDirectory";
+ public static string DiscordOnlySendSummariesIncludingBmj = "Discord.OnlySendSummariesIncludingBmj";
}
}
\ No newline at end of file