Skip to content

Commit

Permalink
feat: add expermintal whisparr v3 support
Browse files Browse the repository at this point in the history
  • Loading branch information
BlackDark committed Nov 16, 2024
1 parent b0d2eb7 commit 932fbaf
Show file tree
Hide file tree
Showing 23 changed files with 6,254 additions and 12 deletions.
29 changes: 29 additions & 0 deletions docs/docs/configuration/config-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,35 @@ radarr:
- name: HD Bluray + WEB
upgrade:
min_format_score: 200

# experimental support: check https://configarr.rayak.de/docs/configuration/experimental-support
whisparr:
instance1: # Instance name (can be any unique identifier)
base_url: http://whisparr:6969 # instance URL
api_key: !secret WHISPARR_API_KEY # Reference to API key in secrets.yml

quality_definition:
type: movies # TODO: not checked yet

include:
# only custom defined templates available
- template: whisparr

custom_formats: # Custom format assignments
- trash_ids:
- example-in-config-cf
assign_scores_to:
- name: ExampleProfile
score: 1000

quality_profiles:
# TODO: language not correctly mapped
- name: ExampleProfile
upgrade:
until_score: 200
# Not supported in whisparr
#min_format_score: 200

```

### secrets.yml
Expand Down
31 changes: 31 additions & 0 deletions docs/docs/configuration/experimental-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
sidebar_position: 2
title: Experimental Support
description: "Experimental and testing support for other *Arr tools"
keywords: [configarr configuration, yaml config, custom formats, expermintal, whisparr]
---

# Experimental support

This section describes experimental support for other *Arr tools.
This means that some features of configarr are working as expected but not every feature must be supported.

:::warning
This is experimental and testing support. Support could be dropped in the future.
:::

## Whisparr v3

Experimental support for Whisparr was added with [v1.4.0](https://github.com/configarr/configarr/releases/tag/v1.4.0).

Configuration is mostly equal to the Sonarr or Radarr.

Following things are currently not supported or tested:
- quality definition preset is not evaluated
```yaml
quality_definition:
type: movies # not checked yet
```
- initial language of quality profiles is not correct -> `0`
- no available presets because nothings provided in trash guide or recyclarr -> needs to be done manually with local templates and custom formats

4 changes: 2 additions & 2 deletions docs/docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ You can find the full example at: [configarr/examples/full](https://github.com/r
This will:

- Create required networks
- Launch Sonarr instance
- Launch Radarr instance
- Launch *Arr instances
- Configure API keys using provided XML configs

2. Run Configarr:
Expand All @@ -44,6 +43,7 @@ Once running, you can access the services at:

- Sonarr: http://localhost:6500
- Radarr: http://localhost:6501
- other instances check `docker-compose.yml`

### Cleanup

Expand Down
16 changes: 12 additions & 4 deletions docs/docs/intro.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
---
sidebar_position: 1
description: "Configarr - A powerful synchronization tool for Sonarr and Radarr that helps manage custom formats and quality profiles using TRaSH Guides and custom configurations"
keywords: [configarr, sonarr, radarr, trash guides, custom formats, media management, automation, recyclarr, quality profiles]
description: "Configarr - A powerful synchronization tool for Sonarr, Radarr and other *Arr tools that helps manage custom formats and quality profiles using TRaSH Guides and custom configurations"
keywords: [configarr, sonarr, radarr, trash guides, custom formats, media management, automation, recyclarr, quality profiles, whisparr]
---

# Introduction

Welcome to Configarr - your all-in-one solution for managing Sonarr and Radarr configurations with seamless integration of TRaSH Guides and custom formats.
Welcome to Configarr - your all-in-one solution for managing Sonarr and Radarr (and other *Arr tools) configurations with seamless integration of TRaSH Guides and custom formats.

## What is Configarr?

Configarr is a powerful configuration and synchronization tool designed specifically for Sonarr v4 and Radarr v5. It streamlines the process of managing custom formats and quality profiles by automatically synchronizing settings from TRaSH Guides while supporting additional customizations.

### Experimental support

Experimental support also available for:

- Whisparr v3

### Key Features

- 🔄 **TRaSH Guides Integration**: Directly sync custom formats and quality profiles from TRaSH Guides
Expand All @@ -26,7 +32,7 @@ Configarr is a powerful configuration and synchronization tool designed specific

### Why Choose Configarr?

If you're managing a media server with Sonarr and Radarr, Configarr helps you:
If you're managing a media server with Sonarr and Radarr (or other *Arr tools), Configarr helps you:

- Save time by automating configuration management
- Maintain consistency across your media servers
Expand All @@ -38,13 +44,15 @@ If you're managing a media server with Sonarr and Radarr, Configarr helps you:

- Sonarr v4
- Radarr v5
- check experimental support [here](./configuration/experimental-support)
- Docker or Kubernetes

## Getting Started

Ready to streamline your media server configuration? Let's get started with the basic setup.

[Continue to Installation →](./category/installation)
[Check experimental support](./configuration/experimental-support)

### Related/Inspired Projects

Expand Down
27 changes: 27 additions & 0 deletions examples/full/config/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,30 @@ radarr:
quality_profiles:
- name: ExampleProfile
# score: 0 # Uncomment this line to disable prioritised IMAX Enhanced releases

whisparr:
instance1: # Instance name (can be any unique identifier)
base_url: http://whisparr:6969 # instance URL
api_key: !secret WHISPARR_API_KEY # Reference to API key in secrets.yml

quality_definition:
type: movies # Quality definition type

include:
# only custom defined templates available
- template: whisparr

custom_formats: # Custom format assignments
- trash_ids:
- example-in-config-cf
assign_scores_to:
- name: ExampleProfile
score: 1000

quality_profiles:
# TODO: language not correctly mapped
- name: ExampleProfile
upgrade:
until_score: 200
# Not supported in whisparr
#min_format_score: 200
1 change: 1 addition & 0 deletions examples/full/config/secrets.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
SONARR_API_KEY: 5e792b7e0fe14f58b8e92bf0902d4a44
RADARR_API_KEY: 0daa3a2b940f4e08bac991e9a30e9e12
WHISPARR_API_KEY: 2ebd18db81e14c2d98d06ef4b865aaa8
17 changes: 17 additions & 0 deletions examples/full/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,27 @@ services:
- 6501:7878
restart: unless-stopped

whisparr:
image: ghcr.io/hotio/whisparr:v3-3.0.0.695
networks:
- configarr-full
ports:
- "6502:6969"
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=Etc/UTC
volumes:
- whisparr:/config
- ${PWD}/whisparr.xml:/config/config.xml:rw
restart: unless-stopped

networks:
configarr-full:
name: configarr-full

volumes:
sonarr:
radarr:
whisparr:
22 changes: 22 additions & 0 deletions examples/full/templates/whisparr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
quality_profiles:
- name: ExampleProfile
reset_unmatched_scores:
enabled: true
upgrade:
allowed: true
until_quality: WEB 2160p
until_score: 1000
min_format_score: 5
quality_sort: top
qualities:
- name: VR
- name: Remux-2160p
- name: WEB 2160p
qualities:
- WEBDL-2160p
- WEBRip-2160p
- name: Remux-1080p
- name: WEB 1080p
qualities:
- WEBDL-1080p
- WEBRip-1080p
17 changes: 17 additions & 0 deletions examples/full/whisparr.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<Config>
<BindAddress>*</BindAddress>
<Port>6969</Port>
<SslPort>9898</SslPort>
<EnableSsl>False</EnableSsl>
<LaunchBrowser>True</LaunchBrowser>
<ApiKey>2ebd18db81e14c2d98d06ef4b865aaa8</ApiKey>
<AuthenticationMethod>Basic</AuthenticationMethod>
<AuthenticationRequired>DisabledForLocalAddresses</AuthenticationRequired>
<Branch>eros</Branch>
<LogLevel>info</LogLevel>
<SslCertPath></SslCertPath>
<SslCertPassword></SslCertPassword>
<UrlBase></UrlBase>
<InstanceName>Whisparr</InstanceName>
<UpdateMechanism>Docker</UpdateMechanism>
</Config>
13 changes: 13 additions & 0 deletions generate-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { generateApi } from "swagger-typescript-api";
const PATH_TO_OUTPUT_DIR = path.resolve(process.cwd(), "./src/__generated__");
const PATH_SONARR_DIR = path.resolve(PATH_TO_OUTPUT_DIR, "sonarr");
const PATH_RADARR_DIR = path.resolve(PATH_TO_OUTPUT_DIR, "radarr");
const PATH_WHISPARR_DIR = path.resolve(PATH_TO_OUTPUT_DIR, "whisparr");

const main = async () => {
await generateApi({
Expand All @@ -29,8 +30,20 @@ const main = async () => {
},
});

await generateApi({
output: PATH_WHISPARR_DIR,
url: "https://raw.githubusercontent.com/Whisparr/Whisparr/develop/src/Whisparr.Api.V3/openapi.json",
modular: true,
singleHttpClient: true,
// @ts-ignore little hack to have one single client (we are deleting the weird created file for the http-client)
fileNames: {
httpClient: "../ky-client",
},
});

unlinkSync(path.resolve(PATH_SONARR_DIR, "..ts"));
unlinkSync(path.resolve(PATH_RADARR_DIR, "..ts"));
unlinkSync(path.resolve(PATH_WHISPARR_DIR, "..ts"));
};

main();
Loading

0 comments on commit 932fbaf

Please sign in to comment.