84 lines
2.8 KiB
Markdown
84 lines
2.8 KiB
Markdown
# League Commands
|
|
|
|
This directory contains Discord slash commands related to league-wide information and statistics.
|
|
|
|
## Files
|
|
|
|
### `info.py`
|
|
- **Command**: `/league`
|
|
- **Description**: Display current league status and information
|
|
- **Functionality**: Shows current season/week, phase (regular season/playoffs/offseason), transaction status, trade deadlines, and league configuration
|
|
- **Service Dependencies**: `league_service.get_current_state()`
|
|
- **Key Features**:
|
|
- Dynamic phase detection (offseason, playoffs, regular season)
|
|
- Transaction freeze status
|
|
- Trade deadline and playoff schedule information
|
|
- Draft pick trading status
|
|
|
|
### `standings.py`
|
|
- **Commands**:
|
|
- `/standings` - Display league standings by division
|
|
- `/playoff-picture` - Show current playoff picture and wild card race
|
|
- **Parameters**:
|
|
- `season`: Optional season number (defaults to current)
|
|
- `division`: Optional division filter for standings
|
|
- **Service Dependencies**: `standings_service`
|
|
- **Key Features**:
|
|
- Division-based standings display
|
|
- Games behind calculations
|
|
- Recent form statistics (home record, last 8 games, current streak)
|
|
- Playoff cutoff visualization
|
|
- Wild card race tracking
|
|
|
|
### `schedule.py`
|
|
- **Commands**:
|
|
- `/schedule` - Display game schedules
|
|
- `/results` - Show recent game results
|
|
- **Parameters**:
|
|
- `season`: Optional season number (defaults to current)
|
|
- `week`: Optional specific week filter
|
|
- `team`: Optional team abbreviation filter
|
|
- **Service Dependencies**: `schedule_service`
|
|
- **Key Features**:
|
|
- Weekly schedule views
|
|
- Team-specific schedule filtering
|
|
- Series grouping and summary
|
|
- Recent/upcoming game overview
|
|
- Game completion tracking
|
|
|
|
## Architecture Notes
|
|
|
|
### Decorator Usage
|
|
All commands use the `@logged_command` decorator pattern:
|
|
- Eliminates boilerplate logging code
|
|
- Provides consistent error handling
|
|
- Automatic request tracing and timing
|
|
|
|
### Error Handling
|
|
- Graceful fallbacks for missing data
|
|
- User-friendly error messages
|
|
- Ephemeral responses for errors
|
|
|
|
### Embed Structure
|
|
- Uses `EmbedTemplate` for consistent styling
|
|
- Color coding based on context (success/error/info)
|
|
- Rich formatting with team logos and thumbnails
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **No league data available**: Check `league_service.get_current_state()` API endpoint
|
|
2. **Standings not loading**: Verify `standings_service.get_standings_by_division()` returns valid data
|
|
3. **Schedule commands failing**: Ensure `schedule_service` methods are properly handling season/week parameters
|
|
|
|
### Dependencies
|
|
- `services.league_service`
|
|
- `services.standings_service`
|
|
- `services.schedule_service`
|
|
- `utils.decorators.logged_command`
|
|
- `views.embeds.EmbedTemplate`
|
|
- `constants.SBA_CURRENT_SEASON`
|
|
|
|
### Testing
|
|
Run tests with: `python -m pytest tests/test_commands_league.py -v` |