@@ -10,8 +10,9 @@ class Module
1010 AI_HELPER = "ai_helper"
1111 TRANSLATION = "translation"
1212 BOT = "bot"
13+ SPAM = "spam"
1314
14- NAMES = [ SUMMARIZATION , SEARCH , DISCORD , INFERENCE , AI_HELPER , TRANSLATION , BOT ] . freeze
15+ NAMES = [ SUMMARIZATION , SEARCH , DISCORD , INFERENCE , AI_HELPER , TRANSLATION , BOT , SPAM ] . freeze
1516
1617 SUMMARIZATION_ID = 1
1718 SEARCH_ID = 2
@@ -20,53 +21,60 @@ class Module
2021 AI_HELPER_ID = 5
2122 TRANSLATION_ID = 6
2223 BOT_ID = 7
24+ SPAM_ID = 8
2325
2426 class << self
2527 def all
2628 [
2729 new (
2830 SUMMARIZATION_ID ,
2931 SUMMARIZATION ,
30- "ai_summarization_enabled" ,
32+ enabled_by_setting : "ai_summarization_enabled" ,
3133 features : DiscourseAi ::Configuration ::Feature . summarization_features ,
3234 ) ,
3335 new (
3436 SEARCH_ID ,
3537 SEARCH ,
36- "ai_bot_enabled" ,
38+ enabled_by_setting : "ai_bot_enabled" ,
3739 features : DiscourseAi ::Configuration ::Feature . search_features ,
3840 extra_check : -> { SiteSetting . ai_bot_discover_persona . present? } ,
3941 ) ,
4042 new (
4143 DISCORD_ID ,
4244 DISCORD ,
43- "ai_discord_search_enabled" ,
45+ enabled_by_setting : "ai_discord_search_enabled" ,
4446 features : DiscourseAi ::Configuration ::Feature . discord_features ,
4547 ) ,
4648 new (
4749 INFERENCE_ID ,
4850 INFERENCE ,
49- "inferred_concepts_enabled" ,
51+ enabled_by_setting : "inferred_concepts_enabled" ,
5052 features : DiscourseAi ::Configuration ::Feature . inference_features ,
5153 ) ,
5254 new (
5355 AI_HELPER_ID ,
5456 AI_HELPER ,
55- "ai_helper_enabled" ,
57+ enabled_by_setting : "ai_helper_enabled" ,
5658 features : DiscourseAi ::Configuration ::Feature . ai_helper_features ,
5759 ) ,
5860 new (
5961 TRANSLATION_ID ,
6062 TRANSLATION ,
61- "ai_translation_enabled" ,
63+ enabled_by_setting : "ai_translation_enabled" ,
6264 features : DiscourseAi ::Configuration ::Feature . translation_features ,
6365 ) ,
6466 new (
6567 BOT_ID ,
6668 BOT ,
67- "ai_bot_enabled" ,
69+ enabled_by_setting : "ai_bot_enabled" ,
6870 features : DiscourseAi ::Configuration ::Feature . bot_features ,
6971 ) ,
72+ new (
73+ SPAM_ID ,
74+ SPAM ,
75+ enabled_by_setting : "ai_spam_detection_enabled" ,
76+ features : DiscourseAi ::Configuration ::Feature . spam_features ,
77+ ) ,
7078 ]
7179 end
7280
@@ -75,7 +83,7 @@ def find_by(id:)
7583 end
7684 end
7785
78- def initialize ( id , name , enabled_by_setting , features : [ ] , extra_check : nil )
86+ def initialize ( id , name , enabled_by_setting : nil , features : [ ] , extra_check : nil )
7987 @id = id
8088 @name = name
8189 @enabled_by_setting = enabled_by_setting
@@ -86,6 +94,8 @@ def initialize(id, name, enabled_by_setting, features: [], extra_check: nil)
8694 attr_reader :id , :name , :enabled_by_setting , :features
8795
8896 def enabled?
97+ return @extra_check . call if enabled_by_setting . blank? && @extra_check . present?
98+
8999 enabled_setting = SiteSetting . get ( enabled_by_setting )
90100
91101 if @extra_check
0 commit comments