Class: DiscordRDA::AutoModerationRule
- Inherits:
-
Entity
- Object
- Entity
- DiscordRDA::AutoModerationRule
show all
- Defined in:
- lib/discord_rda/event/auto_moderation.rb
Overview
Represents an Auto Moderation rule
Constant Summary
collapse
- EVENT_TYPES =
{
message_send: 1
}.freeze
- TRIGGER_TYPES =
{
keyword: 1,
spam: 3,
keyword_preset: 4,
mention_spam: 5,
member_profile: 6
}.freeze
- KEYWORD_PRESETS =
{
profanity: 1,
sexual_content: 2,
slurs: 3
}.freeze
- ACTION_TYPES =
{
block_message: 1,
send_alert_message: 2,
timeout: 3,
block_member_interaction: 4
}.freeze
Instance Attribute Summary
Attributes inherited from Entity
#id
Instance Method Summary
collapse
Methods inherited from Entity
#==, attribute, #created_at, from_hash, #hash, #initialize, #inspect, #to_h, #to_json
Instance Method Details
#actions ⇒ Object
222
223
224
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 222
def actions
@raw_data['actions'] || []
end
|
#allow_list ⇒ Object
238
239
240
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 238
def allow_list
trigger_metadata['allow_list'] || []
end
|
#block_member_interaction_action? ⇒ Boolean
290
291
292
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 290
def block_member_interaction_action?
actions.any? { |a| a['type'] == 4 }
end
|
#block_message_action? ⇒ Boolean
278
279
280
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 278
def block_message_action?
actions.any? { |a| a['type'] == 1 }
end
|
#event_type_name ⇒ Object
250
251
252
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 250
def event_type_name
EVENT_TYPES.key(event_type) || :unknown
end
|
#keyword_filter ⇒ Object
226
227
228
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 226
def keyword_filter
trigger_metadata['keyword_filter'] || []
end
|
#keyword_preset_trigger? ⇒ Boolean
266
267
268
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 266
def keyword_preset_trigger?
trigger_type == 4
end
|
#keyword_trigger? ⇒ Boolean
258
259
260
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 258
def keyword_trigger?
trigger_type == 1
end
|
#member_profile_trigger? ⇒ Boolean
274
275
276
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 274
def member_profile_trigger?
trigger_type == 6
end
|
#mention_raid_protection_enabled ⇒ Object
246
247
248
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 246
def mention_raid_protection_enabled
trigger_metadata['mention_raid_protection_enabled']
end
|
#mention_spam_trigger? ⇒ Boolean
270
271
272
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 270
def mention_spam_trigger?
trigger_type == 5
end
|
#mention_total_limit ⇒ Object
242
243
244
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 242
def mention_total_limit
trigger_metadata['mention_total_limit']
end
|
#presets ⇒ Object
234
235
236
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 234
def presets
trigger_metadata['presets'] || []
end
|
#regex_patterns ⇒ Object
230
231
232
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 230
def regex_patterns
trigger_metadata['regex_patterns'] || []
end
|
#send_alert_action? ⇒ Boolean
282
283
284
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 282
def send_alert_action?
actions.any? { |a| a['type'] == 2 }
end
|
#spam_trigger? ⇒ Boolean
262
263
264
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 262
def spam_trigger?
trigger_type == 3
end
|
#timeout_action? ⇒ Boolean
286
287
288
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 286
def timeout_action?
actions.any? { |a| a['type'] == 3 }
end
|
218
219
220
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 218
def trigger_metadata
@raw_data['trigger_metadata'] || {}
end
|
#trigger_type_name ⇒ Object
254
255
256
|
# File 'lib/discord_rda/event/auto_moderation.rb', line 254
def trigger_type_name
TRIGGER_TYPES.key(trigger_type) || :unknown
end
|