Skip to content

Commit 993d4b0

Browse files
committed
Check for suspicious usernames
1 parent 29be3dc commit 993d4b0

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

lib/src/modules/join_logs.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import 'package:running_on_dart/src/settings.dart';
99
import 'package:running_on_dart/src/init.dart';
1010

1111
const idFieldName = 'ID';
12+
final RegExp suspiciousNameRegex = RegExp(r'^[A-Za-z]+[\._][A-Za-z]+_\d+_\d+$');
1213

1314
class JoinLogsModule implements RequiresInitialization {
1415
final NyxxGateway _client = Injector.appInstance.get();
@@ -36,6 +37,10 @@ class JoinLogsModule implements RequiresInitialization {
3637
descriptionBuffer.write(" (New user)");
3738
}
3839

40+
if (event.member.user != null && _isSuspiciousName(event.member.user!)) {
41+
descriptionBuffer.write(" (Suspicious)");
42+
}
43+
3944
final embed = EmbedBuilder(
4045
description: descriptionBuffer.toString(),
4146
author: EmbedAuthorBuilder(name: event.member.user!.username, iconUrl: event.member.user!.avatar.url),
@@ -116,6 +121,14 @@ class JoinLogsModule implements RequiresInitialization {
116121
String _formatDateTimeString(DateTime dateTime) =>
117122
'${dateTime.format(TimestampStyle.shortDate)} (${dateTime.format(TimestampStyle.relativeTime)})';
118123

124+
bool _isSuspiciousName(User user) {
125+
if (user.globalName != null && suspiciousNameRegex.hasMatch(user.globalName!)) {
126+
return true;
127+
}
128+
129+
return suspiciousNameRegex.hasMatch(user.username);
130+
}
131+
119132
Future<bool> _isEnabledForGuild(Snowflake guildId) async {
120133
if (!intentFeaturesEnabled) {
121134
return false;

0 commit comments

Comments
 (0)