From 2103a2cd6efcc4235b2d88a11f584c315a9baa9f Mon Sep 17 00:00:00 2001 From: adiChoudhary <98697219+adiChoudhary@users.noreply.github.com> Date: Sun, 24 Sep 2023 00:03:17 +0530 Subject: [PATCH 1/3] added required changes for logging blacklisted features --- .../org/togetherjava/tjbot/config/FeatureBlacklist.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java b/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java index be69163841..fe429e7361 100644 --- a/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java +++ b/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java @@ -1,6 +1,8 @@ package org.togetherjava.tjbot.config; import com.fasterxml.jackson.annotation.JsonCreator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Set; @@ -12,6 +14,7 @@ */ public class FeatureBlacklist { private final Set featureIdentifierBlacklist; + private static final Logger logger = LoggerFactory.getLogger(FeatureBlacklist.class); /** * Creates a feature blacklist @@ -30,6 +33,10 @@ public FeatureBlacklist(Set featureIdentifierBlacklist) { * @return true if a feature is enabled, false otherwise */ public boolean isEnabled(T featureId) { - return !featureIdentifierBlacklist.contains(featureId); + boolean isBlackListed = featureIdentifierBlacklist.contains(featureId); + if (isBlackListed) { + logger.info(String.format("%s is blacklisted 😥", featureId)); + } + return !isBlackListed; } } From 734614cb3ecf0562fb540f4b1dd7e0b9bd24a919 Mon Sep 17 00:00:00 2001 From: adiChoudhary <98697219+adiChoudhary@users.noreply.github.com> Date: Sun, 24 Sep 2023 15:52:06 +0530 Subject: [PATCH 2/3] added suggested changes by Alathreon --- .../tjbot/config/FeatureBlacklist.java | 15 ++++++++++++++- .../org/togetherjava/tjbot/features/Features.java | 2 +- .../tjbot/features/code/CodeMessageHandler.java | 9 +++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java b/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java index fe429e7361..66746c4c8e 100644 --- a/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java +++ b/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java @@ -5,6 +5,8 @@ import org.slf4j.LoggerFactory; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Stream; /** * Blacklist of features, use {@link FeatureBlacklist#isEnabled(T)} to test if a feature is enabled. @@ -35,8 +37,19 @@ public FeatureBlacklist(Set featureIdentifierBlacklist) { public boolean isEnabled(T featureId) { boolean isBlackListed = featureIdentifierBlacklist.contains(featureId); if (isBlackListed) { - logger.info(String.format("%s is blacklisted 😥", featureId)); + logger.info("Feature {} is disabled", featureId); } return !isBlackListed; } + + public Stream disableMatching(Stream features, Function idExtractor) { + return features.filter(f -> { + T id = idExtractor.apply(f); + if (!this.isEnabled(id)) { + logger.info("Feature {} is disabled", id); + return false; + } + return true; + }); + } } diff --git a/application/src/main/java/org/togetherjava/tjbot/features/Features.java b/application/src/main/java/org/togetherjava/tjbot/features/Features.java index b98fc75d12..947920fa4d 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/Features.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/Features.java @@ -159,6 +159,6 @@ public static Collection createFeatures(JDA jda, Database database, Con features.add(new JShellCommand(jshellEval)); FeatureBlacklist> blacklist = blacklistConfig.normal(); - return features.stream().filter(f -> blacklist.isEnabled(f.getClass())).toList(); + return blacklist.disableMatching(features.stream(), Feature::getClass).toList(); } } diff --git a/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java b/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java index 916cef8bb6..b764be6717 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java @@ -73,10 +73,11 @@ public final class CodeMessageHandler extends MessageReceiverAdapter implements public CodeMessageHandler(FeatureBlacklist blacklist, JShellEval jshellEval) { componentIdInteractor = new ComponentIdInteractor(getInteractionType(), getName()); - List codeActions = - Stream.of(new FormatCodeCommand(), new EvalCodeCommand(jshellEval)) - .filter(a -> blacklist.isEnabled(a.getClass().getSimpleName())) - .toList(); + List codeActions = blacklist + .disableMatching(Stream.of(new FormatCodeCommand(), new EvalCodeCommand(jshellEval)), + e -> e.getClass().getName()) + .toList(); + labelToCodeAction = codeActions.stream() .collect(Collectors.toMap(CodeAction::getLabel, Function.identity(), (x, y) -> y, From 92d394f70521f863aaecff06ac41de380bdaebc4 Mon Sep 17 00:00:00 2001 From: adiChoudhary <98697219+adiChoudhary@users.noreply.github.com> Date: Sun, 24 Sep 2023 17:41:59 +0530 Subject: [PATCH 3/3] added suggested changes by Alathreon --- .../org/togetherjava/tjbot/config/FeatureBlacklist.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java b/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java index 66746c4c8e..c14e0534c6 100644 --- a/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java +++ b/application/src/main/java/org/togetherjava/tjbot/config/FeatureBlacklist.java @@ -35,11 +35,7 @@ public FeatureBlacklist(Set featureIdentifierBlacklist) { * @return true if a feature is enabled, false otherwise */ public boolean isEnabled(T featureId) { - boolean isBlackListed = featureIdentifierBlacklist.contains(featureId); - if (isBlackListed) { - logger.info("Feature {} is disabled", featureId); - } - return !isBlackListed; + return !featureIdentifierBlacklist.contains(featureId); } public Stream disableMatching(Stream features, Function idExtractor) {