2021-08-11 23:10:18 -07:00
2021-08-11 23:05:04 -07:00
q
2021-08-10 12:41:30 -07:00
2021-08-11 22:14:54 -07:00
2021-08-11 22:04:51 -07:00
2021-08-10 10:51:23 -07:00
2021-08-11 21:32:18 -07:00
2021-08-11 13:15:17 -07:00
2021-08-11 23:10:18 -07:00
2021-08-11 23:07:52 -07:00

GitHub Workflow Status Lines of code Code

A Better Sonarr/Radarr Request Bot for Discord

Why not Requestrr

  • Uses modern Discord slash commands and components, which provides a clean, performant UI on desktop and mobile
  • Simple codebase, <1k lines of code versus almost 10k lines of C# and 7k lines of JS
  • Simple configuration, no need to have a whole web frontend
  • Powered by Clojure and Discljord, a markedly better language 😛

Screenshots

Shortcomings

I wanted a clean app for the sole purpose of requesting movies/TV shows. I personally didn't need Siri, Overseerr, or Ombi integration - so those are missing in this bot. If enough people would like to see those features, please request it. As such, there is only a boolean permission (role gated) for who has access to the bot, nothing fancy.

Setup

Discord

  1. Create a new Application in Discord
  2. Go to the Bot tab and add a new bot
  3. Copy out the token
  4. Go to OAuth2 and under "OAuth2 URL Generator", enable applications.commands and bot
  5. Copy the resulting URL and use as the invite link to your server

In the server for which you will use the bot, you need to create a new role for your users. Then, grab that role id.

To do this:

  1. Enable Developer Mode (User Settings -> Advanced -> Developer Mode)
  2. Under your server settings, go to Roles, find the role and "Copy ID"

Sonarr/Radarr

  1. Copy out your API keys from Settings -> General

Running with Docker

Simply run with

docker run \
-e SONARR_URL='http://localhost:8989' \
-e RADARR_URL='http://localhost:7878' \
-e SONARR_API='sonarr_api' \
-e RADARR_API='radarr_api' \
-e MAX_RESULTS=10 \
-e BOT_TOKEN='bot_token' \
-e ROLE_ID='role_id' \
--name doplarr ghcr.io/kiranshila/doplarr:main

Building and Running Locally

You need the Clojure CLI tools to build

  1. Clone directory
  2. clj -T:build uberjar

Configuring

  1. Fill out config.edn with the requisite things

Setting up as a service (On Linux (Systemd))

  1. Create the file /etc/systemd/system/doplarr.service with the following
[Unit]
Description=Doplarr Daemon
After=syslog.target network.target
[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/opt/Doplarr
ExecStart=/usr/bin/java -jar target/Doplarr.jar -Dconfig=config.edn
TimeoutStopSec=20
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
  1. Customize the user, group, and working directory to the location of the jar

Then, as root

  1. systemctl -q daemon-reload
  2. systemctl enable --now -q doplarr
Description
No description provided
Readme MIT 982 KiB
Latest
2024-02-08 12:43:42 -05:00
Languages
Clojure 99.2%
Dockerfile 0.8%