diff --git a/src/VahterBanBot/Bot.fs b/src/VahterBanBot/Bot.fs index 28b9007..d948e53 100644 --- a/src/VahterBanBot/Bot.fs +++ b/src/VahterBanBot/Bot.fs @@ -75,23 +75,35 @@ let aggregateBanResultInLogMsg let vahterUserId = message.From.Id let vahterUsername = message.From.Username + let chatName = message.Chat.Username + let chatId = message.Chat.Id let targetUserId = message.ReplyToMessage.From.Id let targetUsername = message.ReplyToMessage.From.Username let logMsgBuilder = StringBuilder() - %logMsgBuilder.AppendLine($"Vahter {prependUsername vahterUsername}({vahterUserId}) banned {prependUsername targetUsername} ({targetUserId})") - %logMsgBuilder.AppendLine($"Deleted {deletedUserMessages} messages in chats:") + %logMsgBuilder.Append($"Vahter {prependUsername vahterUsername}({vahterUserId}) banned {prependUsername targetUsername} ({targetUserId}) in chat ${chatName}({chatId})") + + // we don't want to spam logs channel if all is good + let allChatsOk = banResults |> Array.forall Result.isOk + if allChatsOk then + %logMsgBuilder.AppendLine " in all chats" + logMsgBuilder.AppendLine $"Deleted {deletedUserMessages} messages" + |> string + else + + %logMsgBuilder.AppendLine "" + %logMsgBuilder.AppendLine $"Deleted {deletedUserMessages} messages in chats:" - (logMsgBuilder, banResults) - ||> Array.fold (fun (sb: StringBuilder) result -> - match result with - | Ok (chatUsername, chatId) -> - sb.AppendLine($"{prependUsername chatUsername} ({chatId}) - OK") - | Error (chatUsername, chatId, e) -> - logger.LogError($"Failed to ban user {prependUsername targetUsername} ({targetUserId}) in chat {prependUsername chatUsername} ({chatId})", e) - sb.AppendLine($"{prependUsername chatUsername} ({chatId}) - FAILED. {e.Message}") - ) - |> string + (logMsgBuilder, banResults) + ||> Array.fold (fun (sb: StringBuilder) result -> + match result with + | Ok (chatUsername, chatId) -> + sb.AppendLine($"{prependUsername chatUsername} ({chatId}) - OK") + | Error (chatUsername, chatId, e) -> + logger.LogError($"Failed to ban user {prependUsername targetUsername} ({targetUserId}) in chat {prependUsername chatUsername} ({chatId})", e) + sb.AppendLine($"{prependUsername chatUsername} ({chatId}) - FAILED. {e.Message}") + ) + |> string let onUpdate (botClient: ITelegramBotClient)