https://github.com/0xgingi/request-bot
https://github.com/0xgingi/request-bot
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/0xgingi/request-bot
- Owner: 0xGingi
- Created: 2024-10-30T12:58:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-25T16:39:16.000Z (over 1 year ago)
- Last Synced: 2025-10-11T23:22:29.070Z (9 months ago)
- Language: JavaScript
- Size: 29.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
1. Clone the repository:
```bash
git clone https://github.com/0xgingi/request-bot.git
cd request-bot
```
2. Create a `.env` file and add your Discord bot token, admin user ID, and service API details:
```bash
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
```
3. Create an empty requests.json file:
```json
{}
```
4. Run the Docker container:
```bash
docker compose up -d
```
## Usage
### User Commands
- `/request ` - Request content, with interactive service selection
- `/mystatus ` - All Requests
### Admin Commands
- `/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 ` - Clear all requests with a specific status