1919import org .slf4j .Logger ;
2020import org .slf4j .LoggerFactory ;
2121
22+ import org .togetherjava .tjbot .config .FeatureBlacklist ;
2223import org .togetherjava .tjbot .features .EventReceiver ;
2324import org .togetherjava .tjbot .features .UserInteractionType ;
2425import org .togetherjava .tjbot .features .UserInteractor ;
4748public final class HelpThreadCreatedListener extends ListenerAdapter
4849 implements EventReceiver , UserInteractor {
4950 private static final Logger log = LoggerFactory .getLogger (HelpThreadCreatedListener .class );
51+ private final FeatureBlacklist <String > specialBlacklist ;
5052 private final HelpSystemHelper helper ;
5153 private final Metrics metrics ;
5254
@@ -60,10 +62,13 @@ public final class HelpThreadCreatedListener extends ListenerAdapter
6062 /**
6163 * Creates a new instance.
6264 *
65+ * @param specialBlacklist the special blacklist
6366 * @param helper to work with the help threads
6467 * @param metrics to track events
6568 */
66- public HelpThreadCreatedListener (HelpSystemHelper helper , Metrics metrics ) {
69+ public HelpThreadCreatedListener (FeatureBlacklist <String > specialBlacklist ,
70+ HelpSystemHelper helper , Metrics metrics ) {
71+ this .specialBlacklist = specialBlacklist ;
6772 this .helper = helper ;
6873 this .metrics = metrics ;
6974 }
@@ -96,10 +101,13 @@ private void handleHelpThreadCreated(ThreadChannel threadChannel) {
96101 metrics .count ("help-question_posted" );
97102 threadChannel .retrieveStartMessage ().flatMap (message -> {
98103 registerThreadDataInDB (message , threadChannel );
99- return sendHelperHeadsUp (threadChannel )
100- .flatMap (_ -> HelpThreadCreatedListener .isContextSufficient (message ),
101- _ -> createAIResponse (threadChannel , message ))
102- .flatMap (_ -> pinOriginalQuestion (message ));
104+ RestAction <Message > messageRestAction = sendHelperHeadsUp (threadChannel );
105+ if (specialBlacklist .isEnabled ("AutoAIResponse" )) {
106+ messageRestAction = messageRestAction .flatMap (
107+ _ -> HelpThreadCreatedListener .isContextSufficient (message ),
108+ _ -> createAIResponse (threadChannel , message ));
109+ }
110+ return messageRestAction .flatMap (_ -> pinOriginalQuestion (message ));
103111 }).queue ();
104112 }
105113
0 commit comments