Initial commit: APIcord Discord API Emulator
- Core infrastructure: config, state management, models - REST API server (aiohttp) with Discord-compatible endpoints - WebSocket Gateway server (websockets) with Discord Gateway protocol - State management with guilds, channels, users, messages, interactions - Pydantic models for Discord objects (User, Guild, Channel, Message, etc.) - CLI with start, test, reset, export, validate commands - YAML-based test scenario framework - Basic test scenario for /server_status command flow - Unit tests for models and state manager (19 passing) - GPL-3.0 license
This commit is contained in:
commit
5669048f89
38 files changed
+2871
No files matched your search
@@ -0,0 +1,55 @@
|
||||
# APIcord
|
||||
|
||||
Discord API Emulator for bot testing.
|
||||
|
||||
A standalone Python CLI program that emulates the Discord API (REST + WebSocket Gateway), enabling self-contained testing of Discord bots without requiring a real Discord connection.
|
||||
|
||||
## Features
|
||||
|
||||
- **REST API Server** - Implements Discord REST API endpoints needed for bot operations
|
||||
- **WebSocket Gateway** - Emulates Discord's Gateway for real-time events (READY, INTERACTION_CREATE, etc.)
|
||||
- **State Management** - In-memory state with guilds, channels, users, messages, and interactions
|
||||
- **Test Scenarios** - YAML-based test scenarios for automated bot testing
|
||||
- **CLI Interface** - Easy-to-use commands for starting, testing, and managing the emulator
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install -e .
|
||||
# Or for development
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Start emulator with a test scenario
|
||||
apicord start --scenario scenarios/basic_test.yaml
|
||||
|
||||
# Run automated test against a bot
|
||||
apicord test --scenario scenarios/full_test.yaml --bot-path /path/to/bot
|
||||
|
||||
# Start with custom configuration
|
||||
apicord start --port 8080 --guilds 2 --channels 5
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
apicord/
|
||||
├── src/apicord/
|
||||
│ ├── main.py # CLI entry point
|
||||
│ ├── config.py # Configuration management
|
||||
│ ├── rest/ # REST API server (aiohttp)
|
||||
│ ├── gateways/ # WebSocket gateway (websockets)
|
||||
│ ├── state/ # State management
|
||||
│ ├── models/ # Pydantic models for Discord objects
|
||||
│ └── cli/ # CLI commands
|
||||
├── tests/ # Unit tests
|
||||
├── scenarios/ # YAML test scenarios
|
||||
└── pyproject.toml
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
GPL-3.0 - See LICENSE file for details.
|
||||
Reference in new issue
Block a user