Improve visibility into why images might not be analyzed in some channels.
Changes:
- Add permission check for 'Manage Messages' before processing
- Add debug logging when skipping messages (already analyzed, no media)
- Add info logging when checking messages (shows channel, attachments, embeds)
- Add warning when AI provider not configured
- Add channel name to rate limit warnings
Debug output now shows:
- Which channels lack permissions
- Why messages are skipped
- Rate limit status per channel
- AI provider configuration status
Helps diagnose: 'bot niet pakt in alle chats de content van images'
Mount config.yml into Docker container and provide example template.
Changes:
- Mount config.yml as read-only volume in docker-compose.yml
- Create config.example.yml template for users
- Add config.yml to .gitignore (contains sensitive settings)
- Update README.md with config file setup instructions
Fixes 'Config file not found' error in Docker deployment.
Users should:
1. Copy config.example.yml to config.yml
2. Edit config.yml with their settings
3. Run docker compose up -d
Fix ImportError caused by removed ModerationResult class.
Changes:
- Remove ModerationResult from ai/__init__.py exports
- Remove unused ContentCategory enum and parse_categories function
- Remove unused imports from ai_moderation.py
- Clean up NullProvider to only have analyze_image method
Fixes bot startup crash.
Add blocklist feature to automatically delete ALL media (images, GIFs,
embeds, URLs) from specific users without AI analysis.
Changes:
- Add blocked_user_ids config field to config.yml
- Implement blocklist check in ai_moderation.py (runs before AI checks)
- Update README.md with blocklist documentation
Benefits:
- No AI cost (instant deletion)
- Useful for known spam accounts or problematic users
- Blocks all media types: attachments, embeds, URLs
- Logged for moderation tracking
- Created config.yml template with conservative AI limits
- Created owner.py cog (status, reload, ping commands)
- Created config_loader.py service for YAML config
- Created ai_rate_limiter.py for AI cost control
- Updated bot.py to load only 3 cogs (automod, ai_moderation, owner)
- Simplified config.py (removed unused settings)
- Deleted unnecessary cogs, services, models
- Updated models/__init__.py
Next: Update automod and ai_moderation cogs