mirror of
https://github.com/0xGingi/request-bot.git
synced 2026-09-21 11:54:27 -04:00
No description
- JavaScript 99.5%
- Shell 0.4%
- Dockerfile 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| build.sh | ||
| bun.lockb | ||
| docker-compose.yml | ||
| Dockerfile | ||
| index.js | ||
| package.json | ||
| README.md | ||
| run.sh | ||
Discord Request Bot
A Discord bot that manages media requests for Jellyfin, Kavita, and Audiobookshelf. Users can request content, and administrators can manage these requests with various status updates.
Features
- Users can request content using an slash command
- Service selection (Jellyfin, Kavita, Audiobookshelf)
- API integration to check if content already exists
- Search results with selection menu
- Admins receive DM notifications for new requests
- Admins can update request status (in progress, fulfilled, rejected, delayed)
- Users receive DM notifications when their request status changes
- Status tracking
- Request listing with status filtering
Prerequisites
- Docker or NodeJS
- Discord Bot Token
- Discord User ID (for admin)
- API access to your media services
Setup
- Clone the repository:
git clone https://github.com/0xgingi/request-bot.git cd request-bot - Create a
.envfile and add your Discord bot token, admin user ID, and service API details:TOKEN=your_discord_bot_token ADMIN_ID=your_discord_user_id # Jellyfin Configuration JELLYFIN_URL=https://your-jellyfin-server.com JELLYFIN_API_KEY=your_jellyfin_api_key # Kavita Configuration KAVITA_URL=https://your-kavita-server.com KAVITA_API_KEY=your_api_key_here KAVITA_LOGIN=username:password # Audiobookshelf Configuration AUDIOBOOKSHELF_URL=https://your-audiobookshelf-server.com AUDIOBOOKSHELF_API_KEY=your_audiobookshelf_api_key - Create an empty requests.json file:
{} - Run the Docker container:
docker compose up -d
Usage
User Commands
/request <title>- Request content, with interactive service selection/mystatus <optional id>- All Requests
Admin Commands
/status <request_id> <status>- Update the status of a request- Available statuses: in progress, fulfilled, rejected, delayed
/list [status]- List all requests, optionally filtered by status- Available filters: pending, in progress, fulfilled, rejected, delayed
/clear <status>- Clear all requests with a specific status