Reference documentation for the YAML documentation.
## Summary
The Trash Updater program utilizes YAML for its configuration files. The configuration can be set up
multiple ways, offering a lot of flexibility:
- You may use one or more YAML files simultaneously, allowing you to divide your configuration
properties up in such a way that you can control what gets updated based on which files you
specify.
- Each YAML file may have one or more service configurations. This means you can have one file
define settings for just Sonarr, Radarr, or both services. The program will only read the
configuration from the file relevant for the specific service subcommand you specified (e.g.
`trash sonarr` will only read the Sonarr config in the file, even if Radarr config is present)
> **Remember**: If you do not specify the `--config` argument, the program will look for `trash.yml`
> in the same directory where the executable lives.
## YAML Reference
### Sonarr
```yml
sonarr:
- base_url: http://localhost:8989
api_key: f7e74ba6c80046e39e076a27af5a8444
# Quality definitions from the guide to sync to Sonarr.
quality_definition: hybrid
# Release profiles from the guide to sync to Sonarr.
release_profiles:
- type: anime
strict_negative_scores: true
tags:
- anime
- type: series
strict_negative_scores: false
tags:
- tv
```
- `base_url` (Required)
The base URL of your Sonarr instance. Basically this is the URL you bookmark to get to the front
page.
- `api_key` (Required)
The API key that Trash Updater should use to synchronize settings to your instance. You can obtain
your API key by going to `Sonarr > Settings > General` and copy & paste the "API Key" under the
"Security" group/header.
- `quality_definition` (Optional)
The quality definition [from the TRaSH Guide's Quality Settings page][sonarr_quality] that should
be parsed and uploaded to Sonarr. Only the below values are permitted here.
- `anime`: Represents the "Sonarr Quality Definitions" table specifically for Anime
- `series`: Represents the "Sonarr Quality Definitions" table intended for normal TV Series.
Sometimes referred to as non-anime.
- `hybrid`: A combination of both the `anime` and `series` tables that is calculated by comparing
each row and taking both the smallest minimum and largest maximum values. The purpose of the
Hybrid type is to build the most permissive quality definition that the guide will allow. It's a
good idea to use this one if you want more releases to be blocked by your release profiles
instead of quality.
- `release_profiles` (Optional)
A list of release profiles to parse from the guide. Each object in this list supports the below
properties.
- `type` (Required): Must be one of the following values:
- `anime`: Parse the [Anime Release Profile][sonarr_profile_anime] page from the TRaSH Guide.
- `series`: Parse the [WEB-DL Release Profile][sonarr_profile_series] page from the TRaSH Guide.
- `strict_negative_scores` (Optional): Enables preferred term scores less than 0 to be instead
treated as "Must Not Contain" (ignored) terms. For example, if something is "Preferred" with a
score of `-10`, it will instead be put in the "Must Not Contains" section of the uploaded
release profile. Must be `true` or `false`. The default value is `false` if omitted.
- `tags` (Optional): A list of one or more strings representing tags that will be applied to this
release profile. Tags are created in Sonarr if they do not exist. All tags on an existing
release profile (if present) are removed and replaced with only the tags in this list. If no
tags are specified, no tags will be set on the release profile.
[sonarr_quality]: https://trash-guides.info/Sonarr/V3/Sonarr-Quality-Settings-File-Size/
[sonarr_profile_anime]: https://trash-guides.info/Sonarr/V3/Sonarr-Release-Profile-RegEx-Anime/
[sonarr_profile_series]: https://trash-guides.info/Sonarr/V3/Sonarr-Release-Profile-RegEx/
### Radarr
```yml
radarr:
- base_url: http://localhost:7878
api_key: bf99da49d0b0488ea34e4464aa63a0e5
# Which quality definition in the guide to sync to Radarr.
quality_definition:
type: movie
preferred_ratio: 0.5
```
- `base_url` (Required)
The base URL of your Radarr instance. Basically this is the URL you bookmark to get to the front
page.
- `api_key` (Required)
The API key that Trash Updater should use to synchronize settings to your instance. You can obtain
your API key by going to `Radarr > Settings > General` and copy & paste the "API Key" under the
"Security" group/header.
- `quality_definition` (Optional)
Specify information related to Radarr quality definition processing here. Only the following child
properties are permitted.
- `type` (Required): The quality definition from the [Radarr Quality Settings (File
Size)][radarr_quality] page in the TRaSH Guides that should be parsed and uploaded to Radarr.
Only the below values are permitted here.
- `movie`: Currently the only supported type. Represents the only table on that page and is
intended for general use with all movies in Radarr.
- `preferred_ratio` (Optional) A value `0.0` to `1.0` that represents the percentage
(interpolated) position of that middle slider you see when you enable advanced settings on the
Quality Definitions page in Radarr. A value of `0.0` means the preferred quality will match the
minimum quality. Likewise, `1.0` will match the maximum quality. A value such as `0.5` will keep
it halfway between the two.
If not specified, the default value is `1.0`. Any value less than `0` or greater than `1` will
result in a warning log printed and the value will be clamped.
[radarr_quality]: https://trash-guides.info/Radarr/V3/Radarr-Quality-Settings-File-Size/
## Examples
Various scenarios supported using the flexible configuration support.
### Update as much as possible in both Sonarr and Radarr with a single config
Create a single configuration file (use the default `trash.yml` if you want to simplify your CLI
usage by not being required to specify `--config`) and put all of the configuration in there, like
this:
```yml
sonarr:
- base_url: http://localhost:8989
api_key: f7e74ba6c80046e39e076a27af5a8444
quality_definition: hybrid
release_profiles:
- type: anime
strict_negative_scores: true
tags:
- anime
- type: series
strict_negative_scores: false
tags:
- tv
radarr:
- base_url: http://localhost:7878
api_key: bf99da49d0b0488ea34e4464aa63a0e5
quality_definition:
type: movie
preferred_ratio: 0.5
```
Even though it's all in one file, Radarr settings are ignored when you run `trash sonarr` and vice
versa. To update both, just chain them together in your terminal, like so:
```bash
trash sonarr && trash radarr
```
This scenario is pretty ideal for a cron job you have running regularly and you want it to update
everything possible in one go.
### Selectively update different parts of Sonarr
Say you want to update Sonarr release profiles from the guide, but not the quality definitions.
There's no command line option to control this, so how do you do it?
Simply create two YAML files:
`sonarr-release-profiles.yml`:
```yml
sonarr:
- base_url: http://localhost:8989
api_key: f7e74ba6c80046e39e076a27af5a8444
release_profiles:
- type: anime
tags:
- anime
```
`sonarr-quality-definition.yml`:
```yml
sonarr:
- base_url: http://localhost:8989
api_key: f7e74ba6c80046e39e076a27af5a8444
quality_definition: hybrid
```
Then run the following command:
```bash
trash sonarr --config sonarr-release-profiles.yml
```
This will only update release profiles since you have essentially moved the `quality_definition`
property to its own file. When you want to update both, you just specify both files the next time
you run the program:
```bash
trash sonarr --config sonarr-release-profiles.yml sonarr-quality-definition.yml
```