I plan to come back to it at some point as part of my Marauder project.
I got tired of there being separate bots, so I started combining them into one.
This bot allows you and other users to add TV series and movies to Sonarr and Radarr respectively. It is fairly simple to set up and allows for decent customisation, and attempts to leverage new JavaScript coding practices with modern modules to keep it going for the forseeable future.
Note: This bot is in active development and some of the below config does not work (well, actually, most of it).
See config/config.json.template
git clone https://github.com/Makeshift/telegram-sonarr-radarr-bot.git
npm install
cp config/config.json.template config/config.json
- Edit
config/config.json
to your liking node index.js
Config is generated by nconf, so the bot will gather config from environment variables, arguments and the config/config.json
file.
Key | Description | Optional | Default Value |
---|---|---|---|
sonarr | Top level object | No | |
sonarr.enabled | Should the Sonarr API be enabled? (Hides all Sonarr related buttons if false ) |
Yes | true |
sonarr.url | Sonarr's URL (eg. localhost:8989 ) |
No | |
sonarr.apiKey | Sonarr's API key | No | |
sonarr.defaultProfileName | The name of the default quality profile you'd like to use. If not supplied, will ask the user each time. | Yes | Will ask user |
sonarr.defaultPathName | The name of the default path for downloading TV. If not supplied, will ask the user each time. | Yes | Will ask user |
sonarr.defaultMonitor | Will monitor the supplied string for new episodes in that series. Options: "all" , "missing" , future" |
Yes | All |
Key | Description | Optional | Default Value |
---|---|---|---|
radarr | Top level object | No | |
radarr.enabled | Should the radarr API be enabled? (Hides all Sonarr related buttons if false ) |
Yes | true |
radarr.url | Sonarr's URL (eg. localhost:8989 ) |
No | |
radarr.apiKey | Sonarr's API key | No | |
radarr.defaultProfileName | The name of the default quality profile you'd like to use. If not supplied, will ask the user each time. | Yes | Will ask user |
radarr.defaultPathName | The name of the default path for downloading TV. If not supplied, will ask the user each time. | Yes | Will ask user |
Key | Description | Optional | Default Value |
---|---|---|---|
telegram | Top level object | No | |
telegram.botToken | Should contain your Telegram bot token from @botfather | No | |
telegram.admins | Should contain an array of admin ID's who will be pinged to authenticate users. Can be gotten from @get_id_bot. eg [117100000, 1978571000] |
No |
Key | Description | Optional | Default Value |
---|---|---|---|
bot | Top level object | No | |
bot.logLevel | "info" , "verbose" or "debug" , depending on how spammy you like your logs |
No | |
bot.name | What the bot should refer to itself as. | Yes | "the Bestest Bot" |
Coming soon!
- User authentication (40%)
- Password auth support instead of admin ping
- Setup docker image (20%)
- Sonarr search support
- Sonarr add series support
- Radarr search support
- Radarr add movie support
- Pretty image confirmations
- Screenshots on repo
- Admin home page
- User home page
- Administration notifications
- Proper caching to reduce API calls
- Stats
- Dynamic config/defaults (Admin)
- Removing users (Admin)
- Dynamic config/defaults (User)
- Nconf config persistence
- Tests
- CI
- Proper semver
- File logging?
- Medusa search support?
- Medusa add anime support?
- Series details/Movie details (Episodes snatched, missing, overview, seasons, monitor stats, ratings)
- Search and manual download from within bot
- Change monitoring status
- Delete series (from Sonarr/Radarr & from disk?)
- System details? (Disk space etc.)
- Jellyfin API support? (Watch count/Popularity?)
- Plex API support? (Watch count/Popularity?)
- Emby API support? (Watch count/Popularity?)
- Currently downloading (Plex/Radarr rather than torrent API directly)
- Calendar? (Leveraging cool Telegram stuff)
- Natural Language Processing
Feature request or Bug Report? Click here!