No description
  • JavaScript 99.5%
  • Shell 0.4%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-03-25 12:39:13 -04:00
.dockerignore v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
.env.example v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
.gitignore v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
build.sh release 2024-10-30 09:15:58 -04:00
bun.lockb v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
docker-compose.yml v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
Dockerfile v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
index.js Add autocomplete/suggestions for /status and update ephemeral to new flags 2025-03-25 12:39:13 -04:00
package.json v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
README.md v2.0 - API Service Integration + Massive Overhaul 2025-03-23 10:39:02 -04:00
run.sh release 2024-10-30 09:15:58 -04:00

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:
    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:
    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:
    {}
    
  4. 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