Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Among-Suss/mimicri
A small, performant, feature-rich Discord music bot written in Rust
https://github.com/Among-Suss/mimicri
discord discord-bot wip
Last synced: 7 days ago
JSON representation
A small, performant, feature-rich Discord music bot written in Rust
- Host: GitHub
- URL: https://github.com/Among-Suss/mimicri
- Owner: Among-Suss
- License: mit
- Created: 2022-09-25T14:44:53.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-21T15:15:26.000Z (over 1 year ago)
- Last Synced: 2024-08-02T16:46:57.551Z (3 months ago)
- Topics: discord, discord-bot, wip
- Language: Rust
- Homepage:
- Size: 26.2 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mimicri
[![Version](https://img.shields.io/docker/v/poohcom1/mimicri?color=blue&logo=docker&style=flat-square)](https://hub.docker.com/repository/docker/poohcom1/mimicri)
A small, performant, easy to host Discord music bot written in Rust with multi-server history database functionality.
# Features
- [x] Search
- [ ] Platform-specific/fallback search
- [x] Status (current song, queue, metadata)
- [x] Seeking
- [ ] Shuffling
- [ ] Playlists
- [ ] Timestamps
- [ ] Timestamp shuffling
- [ ] Roles
- [x] Song history
- [ ] Custom playlists
- [ ] Randomized songs from history
- [ ] Voice Commands
- [ ] User-friend Interface## Setup
### Dependencies
- youtube-dl
- ffmpeg
- sqlite3### Config
Create a `.env` file in the root directory, and add the following variables:
```sh
DISCORD_TOKEN = *your bot token*
BOT_PREFIX = *bot prefix*# Optional
SQLITE_DB = db.sqlite# Debug
LOG_FILE = output.log
DEBUG_CHANNEL_ID = *channel id*
DEBUG_GUILD_ID = *guild id*
```Alternatively, you can just set the environment variables before running.
| Variable | Description |
| ------------------ | -------------------------------------------------------------------------- |
| `DISCORD_TOKEN` | Required for bot to run |
| `BOT_PREFIX` | Prefix for message commands |
| `SQLITE_DB` | Path to sqlite db file. If not present, playlist commands will be disabled |
| `LOG_FILE` | Path to log file. If not present, log commands will be disabled |
| `DEBUG_CHANNEL_ID` | Integer ID of channel to send startup message to for debugging |
| `DEBUG_GUILD_ID` | Integer ID of guild to manually register commands to for debugging |## Running
Make sure to set the required environment variables above.
For basic debugging, run:
```sh
cargo run
```To create a release build:
```sh
cargo build --release
```## Deploying
Use the `publish.py` python script to automatically update the version and push to remote. To do that, commit all your changes, and run the script below:
```sh
./publish.py bump -t patch #Type can be patch, minor, or major
```The bump command does 3 things: bump the version on cargo, create a new commit containing only the bump, and tag the commit. With the `--push` flag, it will also automatically push to remote, triggering a workflow. You can run `./publish.py --help` to check out other tools and options.