From f898cc20fdd709b096c86d2275f7eb5ea0c91f94 Mon Sep 17 00:00:00 2001 From: "Janki.Bhimijani" Date: Fri, 12 Sep 2025 13:35:21 +0530 Subject: [PATCH 1/4] Fix: audit message being empty for attachment-only scam posts (#1300) --- .../features/moderation/scam/ScamBlocker.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java index 1c37fe8f3f..f239ad3140 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java @@ -48,6 +48,7 @@ import java.util.function.Predicate; import java.util.function.UnaryOperator; import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * Listener that receives all sent messages from channels, checks them for scam and takes @@ -247,9 +248,20 @@ private void reportScamMessage(MessageReceivedEvent event, String reportTitle, User author = event.getAuthor(); String avatarOrDefaultUrl = author.getEffectiveAvatarUrl(); - + String content = event.getMessage().getContentStripped(); + List attachments = event.getMessage().getAttachments(); + + if (!attachments.isEmpty()) { + String attachmentInfo = attachments.stream() + .map(Message.Attachment::getFileName) + .collect(Collectors.joining(", ")); + content += (content.isEmpty() ? "" : " ") + + "and " + attachments.size() + " attachment" + + (attachments.size() > 1 ? "s " : " ") + + "(" + attachmentInfo + ")"; + } MessageEmbed embed = - new EmbedBuilder().setDescription(event.getMessage().getContentStripped()) + new EmbedBuilder().setDescription(content) .setTitle(reportTitle) .setAuthor(author.getName(), null, avatarOrDefaultUrl) .setTimestamp(event.getMessage().getTimeCreated()) From 6220219af1bf44cbc60e7c005b6b798a89303f28 Mon Sep 17 00:00:00 2001 From: Zabuzard Date: Mon, 15 Sep 2025 08:52:13 +0200 Subject: [PATCH 2/4] spotless formatting --- .../features/moderation/scam/ScamBlocker.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java index f239ad3140..f445d92692 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java @@ -253,21 +253,18 @@ private void reportScamMessage(MessageReceivedEvent event, String reportTitle, if (!attachments.isEmpty()) { String attachmentInfo = attachments.stream() - .map(Message.Attachment::getFileName) - .collect(Collectors.joining(", ")); - content += (content.isEmpty() ? "" : " ") - + "and " + attachments.size() + " attachment" - + (attachments.size() > 1 ? "s " : " ") - + "(" + attachmentInfo + ")"; + .map(Message.Attachment::getFileName) + .collect(Collectors.joining(", ")); + content += (content.isEmpty() ? "" : " ") + "and " + attachments.size() + " attachment" + + (attachments.size() > 1 ? "s " : " ") + "(" + attachmentInfo + ")"; } - MessageEmbed embed = - new EmbedBuilder().setDescription(content) - .setTitle(reportTitle) - .setAuthor(author.getName(), null, avatarOrDefaultUrl) - .setTimestamp(event.getMessage().getTimeCreated()) - .setColor(AMBIENT_COLOR) - .setFooter(author.getId()) - .build(); + MessageEmbed embed = new EmbedBuilder().setDescription(content) + .setTitle(reportTitle) + .setAuthor(author.getName(), null, avatarOrDefaultUrl) + .setTimestamp(event.getMessage().getTimeCreated()) + .setColor(AMBIENT_COLOR) + .setFooter(author.getId()) + .build(); MessageCreateBuilder messageBuilder = new MessageCreateBuilder().setEmbeds(embed); if (!confirmDialog.isEmpty()) { From ba086c3a2411ebba031897c2cc85893f3200e8dd Mon Sep 17 00:00:00 2001 From: Zabuzard Date: Mon, 15 Sep 2025 08:56:47 +0200 Subject: [PATCH 3/4] ux improvements for the text --- .../tjbot/features/moderation/scam/ScamBlocker.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java index f445d92692..6df20d0b30 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java @@ -255,8 +255,9 @@ private void reportScamMessage(MessageReceivedEvent event, String reportTitle, String attachmentInfo = attachments.stream() .map(Message.Attachment::getFileName) .collect(Collectors.joining(", ")); - content += (content.isEmpty() ? "" : " ") + "and " + attachments.size() + " attachment" - + (attachments.size() > 1 ? "s " : " ") + "(" + attachmentInfo + ")"; + content += "%s(The message has %d attachment%s: %s)".formatted( + content.isBlank() ? "" : "\n", attachments.size(), + attachments.size() > 1 ? "s " : " ", attachmentInfo); } MessageEmbed embed = new EmbedBuilder().setDescription(content) .setTitle(reportTitle) From 292b66ed59ea126ee7679fa79f57f1c305bbc484 Mon Sep 17 00:00:00 2001 From: Zabuzard Date: Mon, 15 Sep 2025 09:05:41 +0200 Subject: [PATCH 4/4] small fix with extra space --- .../tjbot/features/moderation/scam/ScamBlocker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java index 6df20d0b30..094d05b5ce 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java @@ -257,7 +257,7 @@ private void reportScamMessage(MessageReceivedEvent event, String reportTitle, .collect(Collectors.joining(", ")); content += "%s(The message has %d attachment%s: %s)".formatted( content.isBlank() ? "" : "\n", attachments.size(), - attachments.size() > 1 ? "s " : " ", attachmentInfo); + attachments.size() > 1 ? "s " : "", attachmentInfo); } MessageEmbed embed = new EmbedBuilder().setDescription(content) .setTitle(reportTitle)