k.eaven 7608388e1a feat: Phase 2 - Pterodisbot Integration Features
- Implemented SlashCommandHandler with Pterodisbot-specific commands:
  - /server_status: Shows server list with dropdown selection
  - /refresh_embeds: Admin command to refresh all embeds
  - /purge_embeds: Admin command to purge all embeds
- Implemented InteractionHandler for Discord interactions:
  - Button clicks (Start, Stop, Restart, Show Address)
  - Select menus (Server dropdown)
  - Slash commands (via InteractionHandler)
- Added EmbedRenderer widget for rich Discord embed rendering
- Added ComponentRenderer widget for buttons, selects, action rows
- Added MessageEntry and MessageList widgets for channel message display
- Added ChannelMessageView for full channel view with header, messages, input
- Implemented TUI navigation between guilds, channels, messages
- Added ChannelMessageView widget with message rendering, embeds, components
- All 19 tests passing
2026-11-01 04:05:40 +00:00

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

pip install -e .
# Or for development
pip install -e ".[dev]"

Quick Start

# 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.

S
Description
Discord API Emulator for bot testing
Readme GPL-3.0
236 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 100%