Skip to content
This repository was archived by the owner on Nov 24, 2022. It is now read-only.

Commit 82a66bb

Browse files
committed
Fix spam detection
1 parent c1176fe commit 82a66bb

2 files changed

Lines changed: 6 additions & 10 deletions

File tree

TabletBot.Discord/Watchers/Spam/SpamMessageList.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ public bool Check(IMessage message)
1919
if (GetLastUserMessage(message.Author) is SpamWatcherItem item)
2020
{
2121
var since = item.Message.Timestamp - message.Timestamp;
22-
if (item.Message.CleanContent == message.CleanContent && since > TimeSpan.FromSeconds(30))
22+
if (item.Message.CleanContent == message.CleanContent && since < TimeSpan.FromSeconds(30))
2323
{
2424
item.Count++;
2525
}
2626
else
2727
{
28-
item.Count = 0;
28+
item.Count = 1;
2929
item.Message = message;
3030
}
3131
return item.Count >= Settings.Current.SpamThreshold;
@@ -40,15 +40,9 @@ public bool Check(IMessage message)
4040
return false;
4141
}
4242

43-
private bool ContainsUrl(string messageContent)
44-
{
45-
var subStrings = messageContent.Split(' ');
46-
return subStrings.Any(m => m.Contains("http://") || m.Contains("https://"));
47-
}
48-
4943
private SpamWatcherItem? GetLastUserMessage(IUser user)
5044
{
51-
return this.FirstOrDefault(m => m.Message.Author.Discriminator == user.Discriminator);
45+
return this.FirstOrDefault(m => m.Message.Author.Id == user.Id);
5246
}
5347
}
5448
}

TabletBot.Discord/Watchers/Spam/SpamMessageWatcher.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Threading.Tasks;
22
using Discord;
3+
using TabletBot.Common;
34

45
#nullable enable
56

@@ -12,7 +13,8 @@ public async Task Receive(IMessage message)
1213
if (_spamMessageList.Check(message))
1314
{
1415
var guildUser = message.Author as IGuildUser;
15-
await guildUser.BanAsync();
16+
await guildUser.BanAsync(1, "Automated ban for spam.");
17+
Log.Write("SpamDetect", $"User {guildUser.Username}#{guildUser.Discriminator} ({guildUser.Id}) was banned for spamming.");
1618
}
1719
}
1820

0 commit comments

Comments
 (0)