Skip to content

Commit 04cdfcb

Browse files
committed
Improve pooping command
1 parent 522055a commit 04cdfcb

File tree

2 files changed

+10
-22
lines changed

2 files changed

+10
-22
lines changed

lib/src/commands/admin.dart

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,6 @@ import 'package:running_on_dart/src/modules/poop_name.dart';
88
import 'package:running_on_dart/src/init.dart';
99
import 'package:running_on_dart/src/util/util.dart';
1010

11-
Future<MessageBuilder> createMessageBuilder(List<String> nicknames, String messageHeader) async {
12-
if (nicknames.isEmpty) {
13-
return MessageBuilder(content: "-/-");
14-
}
15-
16-
return pagination.split(
17-
nicknames.join(','),
18-
buildChunk: (String chunk) => MessageBuilder(
19-
content:
20-
"""
21-
$messageHeader:
22-
```
23-
$chunk
24-
```
25-
""",
26-
),
27-
);
28-
}
29-
3011
Stream<Member> searchMembers(String disallowedChar, int batchSize, Guild guild) {
3112
return (guild.manager.client as NyxxGateway).gateway.listGuildMembers(
3213
guild.id,
@@ -71,11 +52,11 @@ final admin = ChatGroup(
7152
ChatCommand(
7253
"perform-nickname-pooping",
7354
"Perform pooping of usernames in current guild",
74-
id('perform-nickname-pooping', (ChatContext context, [int batchSize = 100]) async {
55+
id('perform-nickname-pooping', (ChatContext context, [int batchSize = 10]) async {
7556
final poopModule = Injector.appInstance.get<PoopNameModule>();
7657

7758
final membersToPoop = <Member>[];
78-
for (final disallowedChar in poopCharacters) {
59+
for (final disallowedChar in minimalPoopCharacters) {
7960
await for (final member in searchMembers(disallowedChar, batchSize, context.guild!)) {
8061
final shouldBePooped = await poopModule.poopMember(member, dryRun: true);
8162
if (shouldBePooped) {
@@ -84,6 +65,10 @@ final admin = ChatGroup(
8465
}
8566
}
8667

68+
if (membersToPoop.isEmpty) {
69+
return context.respond(MessageBuilder(content: 'No members to poop...'));
70+
}
71+
8772
final multiSelectResult = await context.getMultiSelection(
8873
membersToPoop,
8974
MessageBuilder(content: 'Performing members pooping...'),
@@ -97,7 +82,8 @@ final admin = ChatGroup(
9782

9883
await context.respond(
9984
MessageBuilder(
100-
content: 'Pooped members: `${multiSelectResult.map((value) => poopModule.getMemberNameForPooping(value))}`',
85+
content:
86+
'Pooped members: ${multiSelectResult.map((value) => poopModule.getMemberNameForPooping(value)).map((v) => '`$v`').join(', ')}',
10187
),
10288
);
10389
}),

lib/src/modules/poop_name.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ const poopCharacters = [
3535
'*',
3636
];
3737

38+
const minimalPoopCharacters = ['.', "'", '<', '[', '!', '@', r'$', '^', '*'];
39+
3840
final poopRegexp = RegExp("[${poopCharacters.map((c) => RegExp.escape(c)).join()}]");
3941
final weirdCharsRegexp = RegExp(
4042
r'[\u200B\u200C\u200D\u2060\uFEFF\u180E\u202A-\u202E\u2066-\u2069\u00AD\u061C\uFFF9-\uFFFB\uFFFD]|[\x00-\x1F\x7F-\x9F]',

0 commit comments

Comments
 (0)