From 4cd147b3e9f53b040364a64921c3919988ebbdae Mon Sep 17 00:00:00 2001 From: Zabuzard Date: Thu, 6 Mar 2025 09:54:50 +0100 Subject: [PATCH] Fixed another false positive --- application/config.json.template | 1 - .../tjbot/features/moderation/scam/ScamDetector.java | 2 +- .../features/moderation/scam/ScamDetectorTest.java | 12 +++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/application/config.json.template b/application/config.json.template index 253bf483ba..a32f8fd440 100644 --- a/application/config.json.template +++ b/application/config.json.template @@ -44,7 +44,6 @@ "hack", "steamcommunity", "freenitro", - "usd", "^earn", ".exe" ], diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetector.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetector.java index c1181fa8fe..c4ebed3657 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetector.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetector.java @@ -67,7 +67,7 @@ private void analyzeToken(String token, AnalyseResults results) { results.containsSuspiciousKeyword = true; } - if (!results.containsDollarSign && token.contains("$")) { + if (!results.containsDollarSign && (token.contains("$") || "usd".equalsIgnoreCase(token))) { results.containsDollarSign = true; } diff --git a/application/src/test/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetectorTest.java b/application/src/test/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetectorTest.java index e55a90f717..ba1ea14f08 100644 --- a/application/src/test/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetectorTest.java +++ b/application/src/test/java/org/togetherjava/tjbot/features/moderation/scam/ScamDetectorTest.java @@ -26,10 +26,10 @@ void setUp() { ScamBlockerConfig scamConfig = mock(ScamBlockerConfig.class); when(config.getScamBlocker()).thenReturn(scamConfig); - when(scamConfig.getSuspiciousKeywords()).thenReturn(Set.of("nitro", "boob", "sexy", "sexi", - "esex", "steam", "gift", "onlyfans", "bitcoin", "btc", "promo", "trader", "trading", - "whatsapp", "crypto", "claim", "teen", "adobe", "hack", "steamcommunity", - "freenitro", "usd", "^earn", ".exe")); + when(scamConfig.getSuspiciousKeywords()) + .thenReturn(Set.of("nitro", "boob", "sexy", "sexi", "esex", "steam", "gift", "onlyfans", + "bitcoin", "btc", "promo", "trader", "trading", "whatsapp", "crypto", "claim", + "teen", "adobe", "hack", "steamcommunity", "freenitro", "^earn", ".exe")); when(scamConfig.getHostWhitelist()).thenReturn(Set.of("discord.com", "discord.media", "discordapp.com", "discordapp.net", "discordstatus.com")); when(scamConfig.getHostBlacklist()).thenReturn(Set.of("bit.ly", "discord.gg", "teletype.in", @@ -243,6 +243,8 @@ private static List provideRealScamMessages() { private static List provideRealFalsePositiveMessages() { return List .of(""" - https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/types/anonymous-types"""); + https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/types/anonymous-types""", + """ + And according to quick google search. Median wage is about $23k usd"""); } }