### Linux: Enable and Start Requestrr Service Source: https://github.com/thomst08/requestrr/wiki/Installation This command enables the Requestrr systemd service to start automatically on boot and then immediately starts the service. It's a crucial step after configuring the requestrr.service file to ensure the application runs in the background. ```bash systemctl enable requestrr.service systemctl start requestrr.service ``` -------------------------------- ### Download and Run Requestrr from Zip (Linux) Source: https://github.com/thomst08/requestrr/wiki/Installation This script downloads the Requestrr release as a zip file, extracts it, sets execute permissions recursively, makes the main executable runnable, changes the directory, and then starts the application. Note that zip files may not preserve Unix permissions, requiring manual adjustment. ```bash wget https://github.com/thomst08/requestrr/releases/download/{url to latest file}.zip unzip ./requestrr-linux-{arch}.zip chmod -R +X ./requestrr-linux-{arch}/ chmod +x ./requestrr-linux-{arch}/Requestrr.WebApi cd ./requestrr-linux-{arch} ./Requestrr.WebApi ``` -------------------------------- ### Linux: Setup Requestrr User and Move Application Source: https://github.com/thomst08/requestrr/wiki/Installation These Linux commands are used to set up a dedicated system user for Requestrr and move the application files to the recommended /opt directory. It also ensures the correct ownership and permissions are set for the Requestrr user to manage its files. ```bash adduser --system --group --no-create-home requestrr ``` ```bash mv ./requestrr-linux-{arch} /opt/Requestrr chown requestrr:requestrr -R /opt/Requestrr ``` -------------------------------- ### Download and Run Requestrr from Tarball (Linux) Source: https://github.com/thomst08/requestrr/wiki/Installation This script downloads the latest Requestrr release as a tarball, extracts it, changes the directory, and then executes the application. It requires the .NET 6 runtime to be installed on the system. Replace `{url to latest file}` and `{arch}` with the appropriate values from the release page. ```bash wget https://github.com/thomst08/requestrr/releases/download/{url to latest file}.tar.gz tar -xzvf ./requestrr-linux-{arch}.tar.gz cd ./requestrr-linux-{arch} ./Requestrr.WebApi ``` -------------------------------- ### Windows: Run Requestrr Web API Source: https://github.com/thomst08/requestrr/wiki/Installation This command is used on Windows to start the Requestrr web API after extracting the application files. It assumes the executable is named 'Requestrr.WebApi.exe' and is located in the current directory. ```batch Requestrr.WebApi.exe ``` -------------------------------- ### Requestrr Command Line Arguments Source: https://github.com/thomst08/requestrr/wiki/Installation Requestrr supports several command-line arguments to modify its behavior at runtime. These include options for displaying help, changing the configuration directory, setting the network port, and defining a base URL. Examples demonstrate usage with both executable names and without. ```bash Requestrr.WebApi.exe -h Requestrr.WebApi --help Requestrr.WebApi.exe -c "C:\Requestrr\config" Requestrr.WebApi -c /opt/Requestrr/config Requestrr.WebApi.exe -c ./config Requestrr.WebApi.exe -p 4546 Requestrr.WebApi --port 4547 Requestrr.WebApi.exe -u "/requestrr" Requestrr.WebApi --base-url "/" ``` -------------------------------- ### Linux: Create Systemd Service for Requestrr Auto-Start Source: https://github.com/thomst08/requestrr/wiki/Installation This snippet shows how to create a systemd service file to automatically start Requestrr on Linux systems. It defines the service's user, group, working directory, and the executable to run. This ensures Requestrr runs as a background daemon and restarts on failure. ```systemd [Unit] Description=Requestrr Daemon After=syslog.target network.target [Service] User=requestrr Group=requestrr Type=simple WorkingDirectory=/opt/Requestrr ExecStart=/opt/Requestrr/Requestrr.WebApi TimeoutStopSec=20 KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target ``` -------------------------------- ### macOS: Run Requestrr Web API Source: https://github.com/thomst08/requestrr/wiki/Installation This command is used on macOS to start the Requestrr web API after extracting the application files. It assumes the executable is named 'Requestrr.WebApi' and is located in the current directory. ```bash ./Requestrr.WebApi ``` -------------------------------- ### Install Dependencies and Build Project Source: https://github.com/thomst08/requestrr/blob/master/CONTRIBUTING.md These commands are used to install project dependencies and build the development environment. 'npm run install:clean' ensures a clean installation, and 'dotnet build' compiles the .NET Core project. ```bash npm run install:clean dotnet build ``` -------------------------------- ### Linux Systemd Service Setup (Bash) Source: https://context7.com/thomst08/requestrr/llms.txt This script outlines the steps to set up Requestrr as a systemd service on Linux. It includes creating a dedicated user, moving the application, setting permissions, creating the service file, and enabling/starting the service. ```bash # Create system user sudo adduser --system --group --no-create-home requestrr # Move application to /opt sudo mv ./requestrr-linux-x64 /opt/Requestrr sudo chown requestrr:requestrr -R /opt/Requestrr # Create systemd service file sudo cat > /etc/systemd/system/requestrr.service << 'EOF' [Unit] Description=Requestrr Daemon After=syslog.target network.target [Service] User=requestrr Group=requestrr Type=simple WorkingDirectory=/opt/Requestrr ExecStart=/opt/Requestrr/Requestrr.WebApi TimeoutStopSec=20 KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF # Enable and start service sudo systemctl enable requestrr.service sudo systemctl start requestrr.service ``` -------------------------------- ### Custom Language File Example (JSON) Source: https://context7.com/thomst08/requestrr/llms.txt This example shows the structure for a custom language file, which can be used to override or add new language strings for Requestrr commands. It follows a key-value pair format. ```json // Example custom language file structure (locales/custom.json) { "Discord.Command.Movie.Request.Title.Name": "movie", "Discord.Command.Movie.Request.Title.Description": "Request a movie by title", "Discord.Command.Movie.Request.Title.Option.Name": "title", "Discord.Command.Movie.Request.Title.Option.Description": "Enter the movie title to search", "Discord.Command.TV.Request.Title.Name": "tv", "Discord.Command.TV.Request.Title.Description": "Request a TV show by title", "Discord.Command.Music.Request.Artist.Name": "music", "Discord.Command.Music.Request.Artist.Description": "Request music by artist name", "Discord.Command.Ping.Name": "ping", "Discord.Command.Ping.Description": "Check bot status", "Discord.Command.Help.Name": "help", "Discord.Command.Help.Description": "Display help information" } ``` -------------------------------- ### Docker Run Command with Specific Directory Source: https://github.com/thomst08/requestrr/blob/master/README.md This command provides a more specific Docker setup for Requestrr, creating directories for the configuration and then running the container. This is useful for ensuring a clean and organized setup. ```bash mkdir /opt/Requestrr mkdir /opt/Requestrr/config docker run -d \ --name requestrr \ -p 4545:4545 \ -v /opt/Requestrr/config:/root/config \ --restart=unless-stopped \ thomst08/requestrr ``` -------------------------------- ### Default Requestrr Configuration Folder Setting Source: https://github.com/thomst08/requestrr/wiki/Installation The default location for Requestrr's configuration files is specified in the `appsettings.json` file. The `ConfigFolder` key determines this path, which is relative to the application's executable location. ```json { "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "ConfigFolder": "./config" } ``` -------------------------------- ### Configure Docker Volume for Custom Language File in Requestrr Source: https://github.com/thomst08/requestrr/wiki/Connecting-the-bot-to-Discord This example demonstrates how to configure a Docker volume to include a custom language file when running the Requestrr container. It shows the `docker run` command with the necessary volume mount for the locales folder. ```bash docker run -d \ -v /opt/Requestrr/config:/root/config \ -v /opt/Requestrr/example.json:/root/locales/example.json \ -p 4545:4545 \ --restart=unless-stopped \ thomst08/requestrr ``` -------------------------------- ### Requestrr Command Line Arguments for Configuration Source: https://context7.com/thomst08/requestrr/llms.txt These commands demonstrate how to run Requestrr with various command-line arguments for advanced configuration. Arguments can be used to display help, specify a custom configuration directory, change the server port, set a base URL for reverse proxy setups, or combine multiple options for complex deployments. The application parses these arguments to modify its runtime behavior or configuration files. ```bash # Display help ./Requestrr.WebApi --help ``` ```bash # Use custom configuration directory ./Requestrr.WebApi --config-dir /opt/Requestrr/config ./Requestrr.WebApi -c ./custom-config ``` ```bash # Change port (updates settings.json permanently) ./Requestrr.WebApi --port 5000 ./Requestrr.WebApi -p 5000 ``` ```bash # Change base URL for reverse proxy setups ./Requestrr.WebApi --base-url /requestrr ./Requestrr.WebApi -u "/requestrr" ``` ```bash # Combine multiple arguments ./Requestrr.WebApi -c /opt/Requestrr/config -p 5000 -u /requestrr ``` -------------------------------- ### Docker Run Command for Requestrr Source: https://github.com/thomst08/requestrr/blob/master/README.md This command creates and starts a Docker container for Requestrr. It maps port 4545, mounts a volume for configuration, and sets the container to restart automatically. Ensure you replace 'path to config' with your actual configuration directory. ```bash docker run -d \ --name requestrr \ -p 4545:4545 \ -v path to config:/root/config \ --restart=unless-stopped \ thomst08/requestrr ``` -------------------------------- ### Create Custom Language File for Requestrr Source: https://github.com/thomst08/requestrr/wiki/Connecting-the-bot-to-Discord This snippet shows an example of a custom language file for Requestrr. It demonstrates how to modify the text values for specific commands while maintaining the JSON structure. Ensure all properties from the current build are present to avoid errors. ```json { .... "Discord.Command.Movie.Request.Title.Name": "text-for-requesting-movie", "Discord.Command.Movie.Request.Title.Description": "Test used for the description when requesting a movie", .... } ``` -------------------------------- ### Docker Command with Environment Variables Source: https://github.com/thomst08/requestrr/blob/master/README.md This example demonstrates how to run the Requestrr Docker container with custom environment variables. It sets a different port (5000) and a base URL path (/requestrr), which is useful for deployments behind a reverse proxy. ```bash docker run -d \ --name requestrr \ -p 5000:5000 \ -v /opt/Requestrr/config:/root/config \ -e REQUESTRR_PORT=5000 \ -e REQUESTRR_BASEURL=/requestrr \ --restart=unless-stopped \ thomst08/requestrr ``` -------------------------------- ### Requestrr Discord Chat Client Configuration - Get Settings Source: https://context7.com/thomst08/requestrr/llms.txt Retrieve the current configuration settings for the Discord chat client. This includes the bot token, client ID, role IDs for TV shows, movies, and music, monitored channels, notification preferences, and language settings. ```bash # Get current Discord settings curl -X GET http://localhost:4545/api/chatclients \ -H "Authorization: Bearer YOUR_JWT_TOKEN" # Response: # { # "client": "Discord", # "statusMessage": "/help", # "botToken": "YOUR_BOT_TOKEN", # "clientId": "123456789012345678", # "enableRequestsThroughDirectMessages": false, # "tvShowRoles": ["987654321098765432"], # "movieRoles": ["987654321098765432"], # "musicRoles": [], # "monitoredChannels": [], # "automaticallyNotifyRequesters": true, # "notificationMode": "PrivateMessages", # "notificationChannels": [], # "automaticallyPurgeCommandMessages": true, # "language": "English", # "availableLanguages": ["English", "French", "German", "Spanish", "Italian", "Dutch", "Chinese"] # } ``` -------------------------------- ### macOS: Set Executable Permissions for Requestrr Source: https://github.com/thomst08/requestrr/wiki/Installation This macOS command grants execute permissions to the Requestrr application files, typically after extracting the downloaded archive. This is necessary to allow the program to be run directly from the terminal. ```bash chmod -R +x /Applications/requestrr-osx-x64 ``` -------------------------------- ### Configure Ombi Client Source: https://context7.com/thomst08/requestrr/llms.txt Sets up Ombi integration for movies and TV shows, supporting API username authentication and issue tracking. Requires a JWT token for authorization. ```bash # Test Ombi connection curl -X POST http://localhost:4545/api/movies/ombi/test \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 3579, "apiKey": "your-ombi-api-key", "baseUrl": "", "useSSL": false, "version": "4" }' # Save Ombi movie settings curl -X POST http://localhost:4545/api/movies/ombi \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 3579, "apiKey": "your-ombi-api-key", "apiUsername": "requestrr", "baseUrl": "", "useSSL": false, "version": "4", "useMovieIssue": true }' # Save Ombi TV show settings curl -X POST http://localhost:4545/api/tvshows/ombi \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 3579, "apiKey": "your-ombi-api-key", "apiUsername": "requestrr", "baseUrl": "", "useSSL": false, "version": "4", "useTVIssue": true, "restrictions": "None" }' ``` -------------------------------- ### Linux: Check Requestrr Service Status Source: https://github.com/thomst08/requestrr/wiki/Installation This command allows you to check the current status of the Requestrr systemd service. It's useful for verifying if the service is running correctly, troubleshooting issues, and viewing recent logs. ```bash systemctl status requestrr.service ``` -------------------------------- ### Update Requestrr via Docker Source: https://github.com/thomst08/requestrr/wiki/Installation These commands are used to update a Requestrr Docker container. It involves stopping and removing the existing container, pulling the latest image, and then re-running the container with the same configuration. This process ensures you are running the most recent version. ```bash docker kill requestrr docker rm requestrr docker pull thomst08/requestrr ``` -------------------------------- ### Custom Requestrr Configuration Folder Setting Source: https://github.com/thomst08/requestrr/wiki/Installation To change the permanent location of Requestrr's configuration files, modify the `ConfigFolder` value in the `appsettings.json` file. This path can be relative or absolute, allowing flexibility in where settings, notifications, and temporary files are stored. ```json { ... "ConfigFolder": "/opt/Requestrr/config" } ``` -------------------------------- ### Help Command - C# Source: https://github.com/thomst08/requestrr/blob/master/Requestrr.WebApi/SlashCommands.txt This C# code implements a 'Help' slash command, requiring specific channels. It initializes a DiscordHelpWorkFlow using the Discord client and settings provider, then handles the help request. Errors encountered are logged. ```csharp [SlashCommand("[REQUEST_HELP_NAME]", "[REQUEST_HELP_DESCRIPTION]")] [RequireChannels(new ulong[] { [REQUIRED_CHANNEL_IDS] })] public async Task Help(InteractionContext ctx) { try { await new DiscordHelpWorkFlow(_serviceProvider.Get(), ctx, _serviceProvider.Get()) .HandleHelpAsync(); } catch (System.Exception ex) { _logger.LogError(ex, "Error while sending help command: " + ex.Message); } } ``` -------------------------------- ### Get Radarr Root Paths using Curl Source: https://context7.com/thomst08/requestrr/llms.txt Retrieves the available root paths configured in Radarr. This information is necessary for specifying where movies should be stored when added through Requestrr. ```bash curl -X POST http://localhost:4545/api/movies/radarr/rootpath \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 7878, "apiKey": "your-radarr-api-key", "baseUrl": "", "useSSL": false, "version": "3" }' ``` -------------------------------- ### Configure Lidarr Music Client via API Source: https://context7.com/thomst08/requestrr/llms.txt Manages Lidarr integration for music requests. Includes functions to test connection, retrieve root paths, quality profiles, and metadata profiles, and to save the overall Lidarr configuration. ```bash # Test Lidarr connection curl -X POST http://localhost:4545/api/music/lidarr/test \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8686, "apiKey": "your-lidarr-api-key", "baseUrl": "", "useSSL": false, "version": "1" }' # Get Lidarr root paths curl -X POST http://localhost:4545/api/music/lidarr/rootpath \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8686, "apiKey": "your-lidarr-api-key", "baseUrl": "", "useSSL": false, "version": "1" }' # Get Lidarr quality profiles curl -X POST http://localhost:4545/api/music/lidarr/profile \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8686, "apiKey": "your-lidarr-api-key", "baseUrl": "", "useSSL": false, "version": "1" }' # Get Lidarr metadata profiles curl -X POST http://localhost:4545/api/music/lidarr/metadataprofile \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8686, "apiKey": "your-lidarr-api-key", "baseUrl": "", "useSSL": false, "version": "1" }' # Save Lidarr settings curl -X POST http://localhost:4545/api/music/lidarr \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8686, "apiKey": "your-lidarr-api-key", "baseUrl": "", "useSSL": false, "version": "1", "searchNewRequests": true, "monitorNewRequests": true, "categories": [ { "id": 0, "name": "music", "profileId": "1", "metadataProfileId": "1", "rootFolder": "/music", "tags": [] } ] }' ``` -------------------------------- ### Remove Docker Container (Bash) Source: https://github.com/thomst08/requestrr/wiki/Other-Issues Command to stop and remove a running Docker container named 'requestrr'. This is a common step when updating or troubleshooting Dockerized applications. ```bash sudo docker stop requestrr && sudo docker rm requestrr ``` -------------------------------- ### Get Sonarr Root Paths using Curl Source: https://context7.com/thomst08/requestrr/llms.txt Retrieves the root paths configured in Sonarr. This is essential for specifying where TV show seasons and episodes should be stored when added via Requestrr. ```bash curl -X POST http://localhost:4545/api/tvshows/sonarr/rootpath \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8989, "apiKey": "your-sonarr-api-key", "baseUrl": "", "useSSL": false, "version": "4" }' ``` -------------------------------- ### Manage Application Settings Source: https://context7.com/thomst08/requestrr/llms.txt Allows retrieval and update of global application settings, including the server port, base URL, and authentication status. Requires a JWT token for updates. ```bash # Get application settings curl -X GET http://localhost:4545/api/settings # Update application settings curl -X POST http://localhost:4545/api/settings \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "port": 4545, "baseUrl": "/requestrr", "disableAuthentication": false }' ``` -------------------------------- ### Get Radarr Quality Profiles using Curl Source: https://context7.com/thomst08/requestrr/llms.txt Fetches the quality profiles available in Radarr. This allows users to select specific quality settings (e.g., 1080p, 4K) for movie requests. ```bash curl -X POST http://localhost:4545/api/movies/radarr/profile \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 7878, "apiKey": "your-radarr-api-key", "baseUrl": "", "useSSL": false, "version": "3" }' ``` -------------------------------- ### Get Sonarr Quality Profiles using Curl Source: https://context7.com/thomst08/requestrr/llms.txt Fetches the available quality profiles from Sonarr. This allows users to select desired quality settings for TV show requests managed through Requestrr. ```bash curl -X POST http://localhost:4545/api/tvshows/sonarr/profile \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8989, "apiKey": "your-sonarr-api-key", "baseUrl": "", "useSSL": false, "version": "4" }' ``` -------------------------------- ### Application Settings API Source: https://context7.com/thomst08/requestrr/llms.txt Manage global application settings, including network configuration and authentication. ```APIDOC ## GET /api/settings ### Description Retrieves the current global application settings. ### Method GET ### Endpoint /api/settings ### Parameters No parameters required. ### Response #### Success Response (200) - **port** (integer) - The port the application is running on. - **baseUrl** (string) - The base URL path for the application. - **disableAuthentication** (boolean) - Whether authentication is disabled. #### Response Example ```json { "port": 4545, "baseUrl": "", "disableAuthentication": false } ``` ## POST /api/settings ### Description Updates the global application settings. This allows modification of the application's port, base URL, and authentication status. ### Method POST ### Endpoint /api/settings ### Parameters #### Request Body - **port** (integer) - Optional - The new port number for the application. - **baseUrl** (string) - Optional - The new base URL path for the application. - **disableAuthentication** (boolean) - Optional - Whether to disable or enable authentication. ### Request Example ```json { "port": 4545, "baseUrl": "/requestrr", "disableAuthentication": false } ``` ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the settings were updated successfully. #### Response Example ```json { "ok": true } ``` ``` -------------------------------- ### Get Radarr Tags using Curl Source: https://context7.com/thomst08/requestrr/llms.txt Retrieves the tags configured within Radarr. Tags can be used to further organize and manage movies within Radarr, and this API call allows fetching them for use in Requestrr. ```bash curl -X POST http://localhost:4545/api/movies/radarr/tag \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 7878, "apiKey": "your-radarr-api-key", "baseUrl": "", "useSSL": false, "version": "3" }' ``` -------------------------------- ### Configure Overseerr Client via API Source: https://context7.com/thomst08/requestrr/llms.txt Sets up Overseerr integration for movies and TV shows. Allows testing connections, retrieving Radarr and Sonarr service settings, and saving movie-specific configurations including user permissions and issue tracking. ```bash # Test Overseerr connection curl -X POST http://localhost:4545/api/movies/overseerr/test \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 5055, "apiKey": "your-overseerr-api-key", "defaultApiUserID": "1", "useSSL": false, "version": "1" }' # Get Overseerr Radarr service settings curl -X POST http://localhost:4545/api/movies/overseerr/radarr \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 5055, "apiKey": "your-overseerr-api-key", "defaultApiUserID": "1", "useSSL": false, "version": "1" }' # Get Overseerr Sonarr service settings curl -X POST http://localhost:4545/api/tvshows/overseerr/sonarr \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 5055, "apiKey": "your-overseerr-api-key", "defaultApiUserID": "1", "useSSL": false, "version": "1" }' # Save Overseerr movie settings curl -X POST http://localhost:4545/api/movies/overseerr \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 5055, "apiKey": "your-overseerr-api-key", "useSSL": false, "version": "1", "useMovieIssue": true, "movies": { "defaultApiUserID": "1", "categories": [ { "id": 0, "name": "movie", "serviceId": 1, "profileId": "1", "rootFolder": "/movies", "tags": [] } ] } }' ``` -------------------------------- ### Get Sonarr Language Profiles using Curl Source: https://context7.com/thomst08/requestrr/llms.txt Retrieves the language profiles configured in Sonarr. This enables users to specify language preferences for TV show requests, ensuring content is downloaded in the desired language. ```bash curl -X POST http://localhost:4545/api/tvshows/sonarr/language \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "hostname": "192.168.1.100", "port": 8989, "apiKey": "your-sonarr-api-key", "baseUrl": "", "useSSL": false, "version": "4" }' ``` -------------------------------- ### Ombi Client Configuration API Source: https://context7.com/thomst08/requestrr/llms.txt Configure Ombi integration for movies and TV shows, including connection testing and saving settings. ```APIDOC ## POST /api/movies/ombi/test ### Description Tests the connection to an Ombi instance for movie-related operations. ### Method POST ### Endpoint /api/movies/ombi/test ### Parameters #### Request Body - **hostname** (string) - Required - The hostname or IP address of the Ombi instance. - **port** (integer) - Required - The port number for the Ombi instance. - **apiKey** (string) - Required - The API key for authenticating with Ombi. - **baseUrl** (string) - Optional - The base URL for the Ombi instance if it's not at the root. - **useSSL** (boolean) - Optional - Whether to use SSL for the connection (defaults to false). - **version** (string) - Required - The version of the Ombi API to use (e.g., '4'). ### Request Example ```json { "hostname": "192.168.1.100", "port": 3579, "apiKey": "your-ombi-api-key", "baseUrl": "", "useSSL": false, "version": "4" } ``` ## POST /api/movies/ombi ### Description Saves Ombi movie settings. This endpoint configures Requestrr's integration with Ombi for movie requests, including authentication and issue tracking preferences. ### Method POST ### Endpoint /api/movies/ombi ### Parameters #### Request Body - **hostname** (string) - Required - The hostname or IP address of the Ombi instance. - **port** (integer) - Required - The port number for the Ombi instance. - **apiKey** (string) - Required - The API key for authenticating with Ombi. - **apiUsername** (string) - Required - The username for API authentication with Ombi. - **baseUrl** (string) - Optional - The base URL for the Ombi instance if it's not at the root. - **useSSL** (boolean) - Optional - Whether to use SSL for the connection (defaults to false). - **version** (string) - Required - The version of the Ombi API to use (e.g., '4'). - **useMovieIssue** (boolean) - Optional - Whether to enable movie issue reporting through Ombi. ### Request Example ```json { "hostname": "192.168.1.100", "port": 3579, "apiKey": "your-ombi-api-key", "apiUsername": "requestrr", "baseUrl": "", "useSSL": false, "version": "4", "useMovieIssue": true } ``` ## POST /api/tvshows/ombi ### Description Saves Ombi TV show settings. This endpoint configures Requestrr's integration with Ombi for TV show requests, including authentication, issue tracking, and restrictions. ### Method POST ### Endpoint /api/tvshows/ombi ### Parameters #### Request Body - **hostname** (string) - Required - The hostname or IP address of the Ombi instance. - **port** (integer) - Required - The port number for the Ombi instance. - **apiKey** (string) - Required - The API key for authenticating with Ombi. - **apiUsername** (string) - Required - The username for API authentication with Ombi. - **baseUrl** (string) - Optional - The base URL for the Ombi instance if it's not at the root. - **useSSL** (boolean) - Optional - Whether to use SSL for the connection (defaults to false). - **version** (string) - Required - The version of the Ombi API to use (e.g., '4'). - **useTVIssue** (boolean) - Optional - Whether to enable TV show issue reporting through Ombi. - **restrictions** (string) - Optional - Restrictions for TV show requests (e.g., 'None'). ### Request Example ```json { "hostname": "192.168.1.100", "port": 3579, "apiKey": "your-ombi-api-key", "apiUsername": "requestrr", "baseUrl": "", "useSSL": false, "version": "4", "useTVIssue": true, "restrictions": "None" } ``` ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the settings were saved successfully. #### Response Example ```json { "ok": true } ``` ``` -------------------------------- ### Docker Deployment for Requestrr Source: https://context7.com/thomst08/requestrr/llms.txt Deploy Requestrr using Docker, exposing port 4545 and mounting a volume for persistent configuration. Environment variables can be used to customize the port and base URL. ```bash # Create configuration directory and run container mkdir -p /opt/Requestrr/config docker run -d \ --name requestrr \ -p 4545:4545 \ -v /opt/Requestrr/config:/root/config \ --restart=unless-stopped \ thomst08/requestrr # With environment variables for custom port and base URL docker run -d \ --name requestrr \ -p 5000:5000 \ -v /opt/Requestrr/config:/root/config \ -e REQUESTRR_PORT=5000 \ -e REQUESTRR_BASEURL=/requestrr \ --restart=unless-stopped \ thomst08/requestrr ``` -------------------------------- ### Discord Slash Commands Source: https://context7.com/thomst08/requestrr/llms.txt Information on available Discord slash commands for requesting media and reporting issues. ```APIDOC ## Discord Slash Commands ### Description The Discord bot automatically registers slash commands upon connection. These commands allow users to request media and report issues directly within Discord. ### Available Commands #### Request Commands (Grouped under `/request`) - `/request movie `: Request a movie by its title. - `/request movie-tmdb <id>`: Request a movie using its TheMovieDB ID. - `/request tv <title>`: Request a TV show by its title. - `/request tv-tvdb <id>`: Request a TV show using its TVDB ID. - `/request music <artist>`: Request music by the artist's name. #### Issue Reporting Commands (Grouped under `/issue`) - `/issue movie <title>`: Report an issue with a movie by its title. - `/issue movie-tmdb <id>`: Report an issue with a movie using its TheMovieDB ID. - `/issue tv <title>`: Report an issue with a TV show by its title. - `/issue tv-tvdb <id>`: Report an issue with a TV show using its TVDB ID. #### Utility Commands - `/ping`: Checks if the Discord bot is responding. - `/help`: Displays a list of available commands and their usage instructions. ``` -------------------------------- ### Discord Chat Client Configuration Source: https://context7.com/thomst08/requestrr/llms.txt Manages the configuration settings for the Discord chat client, including tokens, roles, channels, and notification preferences. ```APIDOC ## GET /api/chatclients ### Description Retrieves the current configuration settings for the Discord chat client. ### Method GET ### Endpoint /api/chatclients ### Parameters #### Headers - **Authorization** (string) - Required - Bearer token for authentication (e.g., `Bearer YOUR_JWT_TOKEN`). ### Response #### Success Response (200) - **client** (string) - The name of the chat client (e.g., "Discord"). - **statusMessage** (string) - The status message displayed by the bot. - **botToken** (string) - The Discord bot token. - **clientId** (string) - The Discord application client ID. - **enableRequestsThroughDirectMessages** (boolean) - Whether to allow requests via direct messages. - **tvShowRoles** (array of strings) - IDs of Discord roles allowed to request TV shows. - **movieRoles** (array of strings) - IDs of Discord roles allowed to request movies. - **musicRoles** (array of strings) - IDs of Discord roles allowed to request music. - **monitoredChannels** (array of strings) - IDs of Discord channels to monitor for commands. - **automaticallyNotifyRequesters** (boolean) - Whether to automatically notify users when their requests are available. - **notificationMode** (string) - The mode for sending notifications (e.g., "PrivateMessages"). - **notificationChannels** (array of strings) - IDs of Discord channels for sending notifications. - **automaticallyPurgeCommandMessages** (boolean) - Whether to automatically delete command messages. - **language** (string) - The current language setting. - **availableLanguages** (array of strings) - A list of available languages for the bot. #### Response Example ```json { "client": "Discord", "statusMessage": "/help", "botToken": "YOUR_BOT_TOKEN", "clientId": "123456789012345678", "enableRequestsThroughDirectMessages": false, "tvShowRoles": ["987654321098765432"], "movieRoles": ["987654321098765432"], "musicRoles": [], "monitoredChannels": [], "automaticallyNotifyRequesters": true, "notificationMode": "PrivateMessages", "notificationChannels": [], "automaticallyPurgeCommandMessages": true, "language": "English", "availableLanguages": ["English", "French", "German", "Spanish", "Italian", "Dutch", "Chinese"] } ``` ```