Petbot/requirements.txt
megaproxy 915aa00bea Implement comprehensive rate limiting system and item spawn configuration
Major Features Added:
- Complete token bucket rate limiting for IRC commands and web interface
- Per-user rate tracking with category-based limits (Basic, Gameplay, Management, Admin, Web)
- Admin commands for rate limit management (\!rate_stats, \!rate_user, \!rate_unban, \!rate_reset)
- Automatic violation tracking and temporary bans with cleanup
- Global item spawn multiplier system with 75% spawn rate reduction
- Central admin configuration system (config.py)
- One-command bot startup script (start_petbot.sh)

Rate Limiting:
- Token bucket algorithm with burst capacity and refill rates
- Category limits: Basic (20/min), Gameplay (10/min), Management (5/min), Web (60/min)
- Graceful violation handling with user-friendly error messages
- Admin exemption and override capabilities
- Background cleanup of old violations and expired bans

Item Spawn System:
- Added global_spawn_multiplier to config/items.json for easy adjustment
- Reduced all individual spawn rates by 75% (multiplied by 0.25)
- Admins can fine-tune both global multiplier and individual item rates
- Game engine integration applies multiplier to all spawn calculations

Infrastructure:
- Single admin user configuration in config.py
- Enhanced startup script with dependency management and verification
- Updated documentation and help system with rate limiting guide
- Comprehensive test suite for rate limiting functionality

Security:
- Rate limiting protects against command spam and abuse
- IP-based tracking for web interface requests
- Proper error handling and status codes (429 for rate limits)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 20:10:43 +00:00

44 lines
No EOL
1.3 KiB
Text

# PetBot Requirements
# Core dependencies for IRC bot functionality
# IRC client library for connecting to IRC servers
irc>=20.3.0
# Async SQLite database interface for database operations
aiosqlite>=0.19.0
# Environment variable loading (for configuration)
python-dotenv>=1.0.0
# HTTP client for web interface testing and rate limiting tests
aiohttp>=3.8.0
# Note: The following are part of Python's standard library and don't need installation:
# - asyncio (async programming)
# - sqlite3 (synchronous SQLite operations)
# - json (JSON data handling)
# - socket (network communication)
# - threading (thread management)
# - time (time operations)
# - os (operating system interface)
# - sys (system parameters)
# - logging (logging framework)
# - pathlib (path handling)
# - urllib.parse (URL parsing)
# - datetime (date/time handling)
# - typing (type annotations)
# - enum (enumerations)
# - abc (abstract base classes)
# - importlib (import utilities)
# - signal (signal handling)
# - shutil (file operations)
# - gzip (compression)
# - tempfile (temporary files)
# - http.server (HTTP server)
# - random (random numbers)
# Development and testing dependencies (optional)
# These are not required for basic bot operation but useful for development:
# pytest>=7.0.0
# black>=22.0.0
# flake8>=4.0.0