commit, am too tired to add docs here
This commit is contained in:
95
config/wordlists/banned-words.yml
Normal file
95
config/wordlists/banned-words.yml
Normal file
@@ -0,0 +1,95 @@
|
||||
# Banned Words Configuration
|
||||
# Manage blocked words and patterns for content filtering
|
||||
|
||||
# Global patterns applied to all guilds (unless overridden)
|
||||
global_patterns:
|
||||
# Basic profanity filter
|
||||
- pattern: "badword1"
|
||||
action: delete
|
||||
is_regex: false
|
||||
reason: "Basic profanity filter"
|
||||
category: profanity
|
||||
severity: 5
|
||||
enabled: true
|
||||
|
||||
- pattern: "badword2"
|
||||
action: warn
|
||||
is_regex: false
|
||||
reason: "Mild profanity"
|
||||
category: profanity
|
||||
severity: 3
|
||||
enabled: true
|
||||
|
||||
# Regex example for variations
|
||||
- pattern: "sp[a4]mm*[i1]ng"
|
||||
action: delete
|
||||
is_regex: true
|
||||
reason: "Spam pattern detection"
|
||||
category: spam
|
||||
severity: 7
|
||||
enabled: true
|
||||
|
||||
# Hate speech prevention
|
||||
- pattern: "hate.*speech.*example"
|
||||
action: timeout
|
||||
is_regex: true
|
||||
reason: "Hate speech filter"
|
||||
category: hate_speech
|
||||
severity: 9
|
||||
enabled: true
|
||||
|
||||
# Guild-specific pattern overrides
|
||||
# Use your Discord server ID as the key
|
||||
guild_patterns:
|
||||
123456789012345678: # Replace with actual guild ID
|
||||
- pattern: "guild-specific-word"
|
||||
action: warn
|
||||
is_regex: false
|
||||
reason: "Server-specific rule"
|
||||
category: harassment
|
||||
severity: 4
|
||||
enabled: true
|
||||
override_global: false
|
||||
|
||||
- pattern: "allowed-here"
|
||||
action: delete
|
||||
is_regex: false
|
||||
reason: "Disable global pattern for this guild"
|
||||
category: profanity
|
||||
severity: 1
|
||||
enabled: false # Disabled = allows the word in this guild
|
||||
override_global: true # Overrides global patterns
|
||||
|
||||
# Add more guild IDs as needed
|
||||
# 987654321098765432:
|
||||
# - pattern: "another-server-rule"
|
||||
# action: strike
|
||||
# [...]
|
||||
|
||||
# Configuration Notes:
|
||||
#
|
||||
# Actions Available:
|
||||
# delete = Delete the message immediately
|
||||
# warn = Send warning to user and log
|
||||
# strike = Add strike to user (triggers escalation)
|
||||
# timeout = Temporarily mute user
|
||||
#
|
||||
# Regex Patterns:
|
||||
# is_regex: true allows advanced pattern matching
|
||||
# Examples:
|
||||
# - "hell+o+" matches "hello", "helllo", "helloooo"
|
||||
# - "[a4]dmin" matches "admin" or "4dmin"
|
||||
# - "spam.*bot" matches "spam bot", "spambot", "spam detection bot"
|
||||
#
|
||||
# Categories:
|
||||
# profanity, hate_speech, spam, scam, harassment, sexual, violence
|
||||
#
|
||||
# Severity (1-10):
|
||||
# 1-3 = Mild violations (warnings)
|
||||
# 4-6 = Moderate violations (delete message)
|
||||
# 7-8 = Serious violations (timeout)
|
||||
# 9-10 = Severe violations (kick/ban)
|
||||
#
|
||||
# Override Global:
|
||||
# false = Use this rule in addition to global patterns
|
||||
# true = This rule replaces global patterns for this guild
|
||||
99
config/wordlists/domain-allowlists.yml
Normal file
99
config/wordlists/domain-allowlists.yml
Normal file
@@ -0,0 +1,99 @@
|
||||
# Domain Allowlists Configuration
|
||||
# Configure domains that bypass scam/phishing detection
|
||||
|
||||
# Global allowlist - applies to all guilds
|
||||
global_allowlist:
|
||||
- domain: "discord.com"
|
||||
reason: "Official Discord domain"
|
||||
added_by: "system"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "github.com"
|
||||
reason: "Popular code repository platform"
|
||||
added_by: "admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "youtube.com"
|
||||
reason: "Popular video platform"
|
||||
added_by: "admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "youtu.be"
|
||||
reason: "YouTube short links"
|
||||
added_by: "admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "imgur.com"
|
||||
reason: "Popular image hosting"
|
||||
added_by: "admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "reddit.com"
|
||||
reason: "Popular discussion platform"
|
||||
added_by: "admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "wikipedia.org"
|
||||
reason: "Educational content"
|
||||
added_by: "admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
# Guild-specific allowlists
|
||||
# Use your Discord server ID as the key
|
||||
guild_allowlists:
|
||||
123456789012345678: # Replace with actual guild ID
|
||||
- domain: "example-gaming-site.com"
|
||||
reason: "Popular gaming community site"
|
||||
added_by: "guild_admin"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
- domain: "guild-specific-forum.com"
|
||||
reason: "Guild's official forum"
|
||||
added_by: "guild_owner"
|
||||
added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
# Add more guild IDs as needed
|
||||
# 987654321098765432:
|
||||
# - domain: "another-server-site.com"
|
||||
# reason: "Server-specific trusted site"
|
||||
# added_by: "admin"
|
||||
# added_date: "2026-01-24T00:00:00Z"
|
||||
|
||||
# Configuration Notes:
|
||||
#
|
||||
# Domain Format:
|
||||
# - Use base domain only (e.g., "example.com" not "https://www.example.com/path")
|
||||
# - Subdomains are automatically included (allowing "example.com" also allows "www.example.com")
|
||||
# - Do not include protocols (http/https) or paths
|
||||
#
|
||||
# Why Allowlist Domains:
|
||||
# - Prevent false positives in scam detection
|
||||
# - Allow trusted community sites and resources
|
||||
# - Whitelist official platforms and services
|
||||
# - Support educational and reference materials
|
||||
#
|
||||
# Security Considerations:
|
||||
# - Only add domains you trust completely
|
||||
# - Regularly review and update the list
|
||||
# - Remove domains that become compromised
|
||||
# - Be cautious with URL shorteners
|
||||
#
|
||||
# Common Domains to Consider:
|
||||
# - Social platforms: twitter.com, instagram.com, tiktok.com
|
||||
# - Gaming: steam.com, epicgames.com, battle.net, minecraft.net
|
||||
# - Development: gitlab.com, stackoverflow.com, npm.org
|
||||
# - Media: twitch.tv, spotify.com, soundcloud.com
|
||||
# - Education: khan.org, coursera.org, edx.org
|
||||
# - News: bbc.com, reuters.com, apnews.com
|
||||
#
|
||||
# Guild-Specific vs Global:
|
||||
# - Global allowlist applies to all servers
|
||||
# - Guild-specific allowlists are additional (don't override global)
|
||||
# - Use guild-specific for community-specific trusted sites
|
||||
# - Use global for widely trusted platforms
|
||||
#
|
||||
# Maintenance:
|
||||
# - Review allowlist monthly for security
|
||||
# - Document reasons for all additions
|
||||
# - Track who added each domain for accountability
|
||||
# - Monitor for changes in domain ownership or compromise
|
||||
74
config/wordlists/external-sources.yml
Normal file
74
config/wordlists/external-sources.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
# External Wordlist Sources Configuration
|
||||
# Configure automatic wordlist updates from external sources
|
||||
|
||||
sources:
|
||||
# Default profanity list (LDNOOBW)
|
||||
- name: "ldnoobw_en"
|
||||
url: "https://raw.githubusercontent.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words/master/en"
|
||||
category: profanity
|
||||
action: warn
|
||||
reason: "External profanity list (English)"
|
||||
enabled: true
|
||||
update_interval_hours: 168 # Update weekly
|
||||
applies_to_guilds: [] # Empty = applies to all guilds
|
||||
|
||||
# Additional language support (uncomment and configure as needed)
|
||||
# - name: "ldnoobw_es"
|
||||
# url: "https://raw.githubusercontent.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words/master/es"
|
||||
# category: profanity
|
||||
# action: warn
|
||||
# reason: "External profanity list (Spanish)"
|
||||
# enabled: false
|
||||
# update_interval_hours: 168
|
||||
# applies_to_guilds: []
|
||||
|
||||
# Custom external source example
|
||||
# - name: "custom_hate_speech"
|
||||
# url: "https://example.com/hate-speech-list.txt"
|
||||
# category: hate_speech
|
||||
# action: delete
|
||||
# reason: "Custom hate speech prevention"
|
||||
# enabled: false
|
||||
# update_interval_hours: 24 # Update daily
|
||||
# applies_to_guilds: [123456789012345678] # Only for specific guild
|
||||
|
||||
# Scam/phishing domains (if available)
|
||||
# - name: "phishing_domains"
|
||||
# url: "https://example.com/phishing-domains.txt"
|
||||
# category: scam
|
||||
# action: delete
|
||||
# reason: "Known phishing domains"
|
||||
# enabled: false
|
||||
# update_interval_hours: 4 # Update every 4 hours
|
||||
# applies_to_guilds: []
|
||||
|
||||
# Configuration Notes:
|
||||
#
|
||||
# Update Intervals:
|
||||
# 1-6 hours = High-risk content (scams, phishing)
|
||||
# 12-24 hours = Moderate risk content
|
||||
# 168 hours = Weekly updates (default for profanity)
|
||||
# 720 hours = Monthly updates (stable lists)
|
||||
#
|
||||
# Applies to Guilds:
|
||||
# [] = Apply to all guilds
|
||||
# [123, 456] = Only apply to specific guild IDs
|
||||
# ["all_premium"] = Apply only to premium guilds (if implemented)
|
||||
#
|
||||
# Categories determine how content is classified and what AI moderation
|
||||
# settings apply to the detected content.
|
||||
#
|
||||
# Actions determine the default action taken when words from this source
|
||||
# are detected. Guild-specific overrides can modify this behavior.
|
||||
#
|
||||
# URL Requirements:
|
||||
# - Must be publicly accessible
|
||||
# - Should return plain text with one word/pattern per line
|
||||
# - HTTPS URLs preferred for security
|
||||
# - Consider rate limiting and source reliability
|
||||
#
|
||||
# Security Notes:
|
||||
# - External sources are validated before applying
|
||||
# - Malformed or suspicious content is logged but not applied
|
||||
# - Sources that fail repeatedly are automatically disabled
|
||||
# - All updates are logged for audit purposes
|
||||
Reference in New Issue
Block a user