mumbullet/README.md

121 lines
3.2 KiB
Markdown

# MumBullet - Mumble Music Bot
A Dart-based framework for building a music bot that connects to Mumble servers, processes chat commands, downloads audio from URLs, and streams audio back to the server with queue management and admin dashboard functionality.
## Current Status
This project is currently in development. The framework and architecture are set up, but the Mumble connectivity is not yet implemented due to limitations in the dumble library documentation.
### What Works
- Configuration management
- Logging system
- Command line interface
### What's Planned
- Mumble server connection
- Command processing with permissions
- YouTube audio downloading and streaming
- Queue management
- Admin dashboard
## Setup and Installation
### Prerequisites
- Dart SDK (version 3.7.3 or later)
- FFmpeg (for audio processing)
- yt-dlp (for YouTube downloads)
- Docker and Docker Compose (for local testing)
### Installation
1. Clone the repository
2. Install the dependencies:
```bash
dart pub get
```
3. Generate the JSON serialization code:
```bash
dart run build_runner build
```
4. Configure the bot by editing `config.json`
5. Run the bot:
```bash
dart bin/mumbullet.dart
```
### Docker Test Environment
The project includes a Docker Compose configuration for local testing with a Mumble server:
```bash
docker-compose up
```
This will start a Mumble server on port 64738 with the password "testpass".
## Configuration
The bot is configured using a JSON file (`config.json` by default). You can specify a different configuration file using the `-c` command line option.
Example configuration:
```json
{
"mumble": {
"server": "localhost",
"port": 64738,
"username": "MusicBot",
"password": "testpass",
"channel": "Music"
},
"bot": {
"command_prefix": "!",
"default_permission_level": 0,
"max_queue_size": 50,
"cache_directory": "./cache",
"max_cache_size_gb": 5
},
"dashboard": {
"port": 8080,
"admin_username": "admin",
"admin_password": "changeme"
}
}
```
## Project Structure
The project is organized into the following directories:
- `bin/` - Main executable
- `lib/` - Library code
- `src/` - Source code
- `config/` - Configuration management (implemented)
- `logging/` - Logging system (implemented)
- `audio/` - Audio downloading and conversion (planned)
- `command/` - Command parsing and handling (planned)
- `dashboard/` - Web dashboard (planned)
- `mumble/` - Mumble connection and audio streaming (planned)
- `queue/` - Music queue management (planned)
- `storage/` - Database and cache management (planned)
- `test/` - Test files
- `web/` - Web dashboard static files (planned)
## Contributing
Contributions to implement the planned features are welcome! The project needs help with:
1. Understanding and implementing the dumble library for Mumble connectivity
2. Implementing audio streaming using FFmpeg and yt-dlp
3. Building the web dashboard interface
4. Creating a robust queue management system
## Roadmap
See the ROADMAP.md file for a detailed development plan.
## License
This project is open source and available for collaborative development.