{ "rate_limiting": { "enabled": true, "description": "Rate limiting configuration for PetBot IRC commands and web interface", "categories": { "basic": { "description": "Basic commands like !help, !ping, !status", "requests_per_minute": 20, "burst_capacity": 5, "cooldown_seconds": 1, "commands": ["help", "ping", "status", "uptime", "connection_stats"] }, "gameplay": { "description": "Gameplay commands like !explore, !catch, !battle", "requests_per_minute": 10, "burst_capacity": 3, "cooldown_seconds": 3, "commands": ["start", "explore", "catch", "battle", "attack", "moves", "flee", "travel", "weather", "gym"] }, "management": { "description": "Pet and inventory management commands", "requests_per_minute": 5, "burst_capacity": 2, "cooldown_seconds": 5, "commands": ["pets", "activate", "deactivate", "stats", "inventory", "use", "nickname"] }, "admin": { "description": "Administrative commands", "requests_per_minute": 100, "burst_capacity": 10, "cooldown_seconds": 0, "commands": ["backup", "restore", "backups", "backup_stats", "backup_cleanup", "reload", "reconnect", "rate_stats", "rate_user", "rate_unban", "rate_reset"] }, "web": { "description": "Web interface requests", "requests_per_minute": 60, "burst_capacity": 10, "cooldown_seconds": 1 } }, "admin_users": ["admin", "megaproxy", "megasconed"], "global_limits": { "max_requests_per_minute": 200, "max_concurrent_users": 100, "description": "Global limits across all users and commands" }, "violation_penalties": { "warning_threshold": 3, "temporary_ban_threshold": 10, "temporary_ban_duration": 300, "description": "Penalties for rate limit violations (ban duration in seconds)" }, "monitoring": { "log_violations": true, "log_bans": true, "stats_reporting_interval": 300, "cleanup_interval": 60, "description": "Monitoring and logging configuration" } } }