mirror of
https://github.com/FoxxMD/multi-scrobbler.git
synced 2026-05-01 21:21:19 +00:00
feat(transformers): Implement applyng limited transform configs via ENV
This commit is contained in:
parent
023bd74f12
commit
17baebdbf2
7 changed files with 312 additions and 29 deletions
|
|
@ -108,6 +108,66 @@ Each [Rule](/configuration/transforms#stage-rules) should be either a boolean, s
|
|||
}
|
||||
```
|
||||
|
||||
## ENV Configuration
|
||||
|
||||
The general configuration shown above can also be configured from a selection of *presets* using [ENV Config](/configuration?configType=env#configuration-types) for individual Sources/Clients.
|
||||
|
||||
You must **always** include the `MB_CONTACT` ENV to [identify your application](#api-setup):
|
||||
|
||||
```ini
|
||||
MB_CONTACT=contact@mydomain.com
|
||||
```
|
||||
|
||||
To configure [stage defaults](http://localhost:3000/docs/configuration/transforms/musicbrainz/#stage-configuration) use `MB_PRESETS` with a comma-delimited list of presets you wish to apply. More than one preset can be applied, in which case they combine. You must choose at least one of the presets below:
|
||||
|
||||
* `default` - Applies no defaults. This is the same as using no options from [Matching With Musicbrainz](#matching-with-musicbrainz)
|
||||
* `sensible` - Applies the [Sensible Default](#sensible-default) configuration for sorting releases
|
||||
* `native` - Applies `fallbackArtistSearch: native` for [Artist Extraction](#artist-extraction) if the first search fails to find matches
|
||||
* `aggressive` - Applies [Free Text Search](#free-text) `fallbackFreeTextSearch: true` if all other searches fail
|
||||
|
||||
Finally, use ENV `*_TRANSFORMS=musicbrainz` on each Source/Client you wish to apply this stage to. This applies the stage in the [`preTransform` Hook](#/configuration/transforms#lifecycle-hooks) with all [Rules](#rules) enabled.
|
||||
|
||||
The `*` stands for the prefix used for each Source/Client's ENV keys. Refer to the individual Source/Client Configuration sections to find this.
|
||||
|
||||
:::tip
|
||||
|
||||
Enhancing a scrobble with the `preTransform` hook for a Source means that all Clients that recieve the scrobble get the enhanced version. You only need to apply the transform once, for a Source, to use it everywhere for downstream Clients.
|
||||
|
||||
:::
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Example Full Docker Deploy with ENV Configuration</summary>
|
||||
|
||||
Using [Jellyfin + Maloja](/quickstart#create-docker-compose-file) example from Quickstart:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
multi-scrobbler:
|
||||
image: foxxmd/multi-scrobbler
|
||||
container_name: multi-scrobbler
|
||||
environment:
|
||||
- MB_CONTACT=contact@mydomain.com
|
||||
- MB_PRESETS=sensible,native # creates sensible defaults with native fallback searching
|
||||
|
||||
- JELLYFIN_URL=192.168.0.110:8096
|
||||
- JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56b
|
||||
- JELLYFIN_USER=MyUser
|
||||
- JELLYFIN_TRANSFORMS=musicbrainz # applies musicbrainz Stage to preTransform of Jellyfin source
|
||||
|
||||
- MALOJA_URL=http://192.168.0.100:42010 # maloja receives enhanced scrobble from Jellyfin
|
||||
- MALOJA_API_KEY=myApiKey
|
||||
|
||||
|
||||
volumes:
|
||||
- "./config:/config"
|
||||
ports:
|
||||
- "9078:9078"
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Matching with Musicbrainz
|
||||
|
||||
:::note
|
||||
|
|
|
|||
|
|
@ -73,6 +73,50 @@ Each [Rule](/configuration/transforms#stage-rules) should be either a boolean, s
|
|||
|
||||
If a rule is not present then multi-scrobbler defaults it to `true`.
|
||||
|
||||
## ENV Configuration
|
||||
|
||||
The default configuration shown above can also be applied using [ENV Config](/configuration?configType=env#configuration-types) for individual Sources/Clients.
|
||||
|
||||
Use ENV `*_TRANSFORMS=native` on each Source/Client you wish to apply this stage to. This applies the stage in the [`preTransform` Hook](#/configuration/transforms#lifecycle-hooks) with all [Rules](#rules) enabled.
|
||||
|
||||
The `*` stands for the prefix used for each Source/Client's ENV keys. Refer to the individual Source/Client Configuration sections to find this.
|
||||
|
||||
:::tip
|
||||
|
||||
Enhancing a scrobble with the `preTransform` hook for a Source means that all Clients that recieve the scrobble get the enhanced version. You only need to apply the transform once, for a Source, to use it everywhere for downstream Clients.
|
||||
|
||||
:::
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Example Full Docker Deploy with ENV Configuration</summary>
|
||||
|
||||
Using [Jellyfin + Maloja](/quickstart#create-docker-compose-file) example from Quickstart:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
multi-scrobbler:
|
||||
image: foxxmd/multi-scrobbler
|
||||
container_name: multi-scrobbler
|
||||
environment:
|
||||
- JELLYFIN_URL=192.168.0.110:8096
|
||||
- JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56b
|
||||
- JELLYFIN_USER=MyUser
|
||||
- JELLYFIN_TRANSFORMS=native # applies native Stage to preTransform of Jellyfin source
|
||||
|
||||
- MALOJA_URL=http://192.168.0.100:42010 # maloja receives enhanced scrobble from Jellyfin
|
||||
- MALOJA_API_KEY=myApiKey
|
||||
|
||||
|
||||
volumes:
|
||||
- "./config:/config"
|
||||
ports:
|
||||
- "9078:9078"
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Examples
|
||||
|
||||
### Parse only artists string using a custom delimiter
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue