Skip to content

Commit 72f8b89

Browse files
committed
feat: use pattern compile
1 parent e961445 commit 72f8b89

File tree

4 files changed

+23
-21
lines changed

4 files changed

+23
-21
lines changed

application/config.json.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,5 @@
111111
]
112112
},
113113
"memberCountCategoryName": "Info",
114-
"updateMemberCountEveryHour", "12",
115114
"selectRolesChannelPattern": "select-your-roles"
116115
}

application/src/main/java/org/togetherjava/tjbot/config/Config.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public final class Config {
4444
private final HelperPruneConfig helperPruneConfig;
4545
private final FeatureBlacklistConfig featureBlacklistConfig;
4646
private final String selectRolesChannelPattern;
47-
private final String updateMemberCountEveryHour;
4847
private final String memberCountCategoryName;
4948

5049
@SuppressWarnings("ConstructorWithTooManyParameters")
@@ -89,7 +88,6 @@ private Config(@JsonProperty(value = "token", required = true) String token,
8988
@JsonProperty(value = "sourceCodeBaseUrl", required = true) String sourceCodeBaseUrl,
9089
@JsonProperty(value = "jshell", required = true) JShellConfig jshell,
9190
@JsonProperty(value = "memberCountCategoryName") String memberCountCategoryName,
92-
@JsonProperty(value = "updateMemberCountEveryHour") String updateMemberCountEveryHour,
9391
@JsonProperty(value = "helperPruneConfig",
9492
required = true) HelperPruneConfig helperPruneConfig,
9593
@JsonProperty(value = "featureBlacklist",
@@ -101,7 +99,6 @@ private Config(@JsonProperty(value = "token", required = true) String token,
10199
this.databasePath = Objects.requireNonNull(databasePath);
102100
this.projectWebsite = Objects.requireNonNull(projectWebsite);
103101
this.memberCountCategoryName = memberCountCategoryName;
104-
this.updateMemberCountEveryHour = updateMemberCountEveryHour;
105102
this.discordGuildInvite = Objects.requireNonNull(discordGuildInvite);
106103
this.modAuditLogChannelPattern = Objects.requireNonNull(modAuditLogChannelPattern);
107104
this.modMailChannelPattern = Objects.requireNonNull(modMailChannelPattern);
@@ -420,8 +417,4 @@ public String getSelectRolesChannelPattern() {
420417
public String getMemberCountCategoryName() {
421418
return memberCountCategoryName;
422419
}
423-
424-
public String getupdateMemberCountEveryHour() {
425-
return updateMemberCountEveryHour;
426-
}
427420
}

application/src/main/java/org/togetherjava/tjbot/features/Features.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
import org.togetherjava.tjbot.config.FeatureBlacklist;
99
import org.togetherjava.tjbot.config.FeatureBlacklistConfig;
1010
import org.togetherjava.tjbot.db.Database;
11-
import org.togetherjava.tjbot.features.basic.*;
11+
import org.togetherjava.tjbot.features.basic.MemberCountDisplayRoutine;
12+
import org.togetherjava.tjbot.features.basic.PingCommand;
13+
import org.togetherjava.tjbot.features.basic.RoleSelectCommand;
14+
import org.togetherjava.tjbot.features.basic.SlashCommandEducator;
15+
import org.togetherjava.tjbot.features.basic.SuggestionsUpDownVoter;
1216
import org.togetherjava.tjbot.features.bookmarks.BookmarksCommand;
1317
import org.togetherjava.tjbot.features.bookmarks.BookmarksSystem;
1418
import org.togetherjava.tjbot.features.bookmarks.LeftoverBookmarksCleanupRoutine;
Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,33 @@
11
package org.togetherjava.tjbot.features.basic;
22

33
import net.dv8tion.jda.api.JDA;
4-
import net.dv8tion.jda.api.entities.Guild;
54
import net.dv8tion.jda.api.entities.channel.concrete.Category;
65

76
import org.togetherjava.tjbot.config.Config;
87
import org.togetherjava.tjbot.features.Routine;
98

10-
import java.util.List;
119
import java.util.concurrent.TimeUnit;
10+
import java.util.function.Predicate;
11+
import java.util.regex.Pattern;
1212

1313
public class MemberCountDisplayRoutine implements Routine {
14-
private final String wordsInCategory;
14+
private final Predicate<String> wordsInCategory;
15+
1516

1617
public MemberCountDisplayRoutine(Config config) {
17-
this.wordsInCategory = config.getMemberCountCategoryName();
18+
wordsInCategory = Pattern.compile(config.getMemberCountCategoryName()).asMatchPredicate();
1819
}
1920

2021
private void updateCategoryName(Category category) {
2122
int totalMemberCount = category.getGuild().getMemberCount();
22-
String basename = category.getName();
23+
String baseName = category.getName();
24+
if (baseName.contains(" Members")) {
25+
// baseName = baseName.substring(0, baseName.lastIndexOf(" Members"));
26+
baseName = Pattern.compile("(.+) - \\d+ Members").toString();
27+
}
28+
System.out.println("%s - %d Members".formatted(baseName.trim(), totalMemberCount));
2329
category.getManager()
24-
.setName("%s - %d Members".formatted(basename, totalMemberCount))
30+
.setName("%s - %d Members".formatted(baseName.trim(), totalMemberCount))
2531
.queue();
2632
}
2733

@@ -32,11 +38,11 @@ public Schedule createSchedule() {
3238

3339
@Override
3440
public void runRoutine(JDA jda) {
35-
jda.getGuilds()
36-
.stream()
37-
.map(Guild::getCategories)
38-
.flatMap(List::stream)
39-
.filter(cat -> cat.getName().equalsIgnoreCase(wordsInCategory))
40-
.forEach(this::updateCategoryName);
41+
jda.getGuilds().forEach(guild -> {
42+
guild.getCategories()
43+
.stream()
44+
.filter(cat -> wordsInCategory.test(cat.getName()))
45+
.forEach(this::updateCategoryName);
46+
});
4147
}
4248
}

0 commit comments

Comments
 (0)