commit, am too tired to add docs here

This commit is contained in:
2026-01-25 09:09:07 +01:00
parent 32d63284c7
commit 1e3acf05d0
15 changed files with 3336 additions and 61 deletions

View 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

View 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

View 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