docs: update readme for new yaml file format.
This commit is contained in:
parent
f41485cecf
commit
8e97ef7170
1 changed files with 45 additions and 22 deletions
67
README.md
67
README.md
|
@ -5,38 +5,49 @@ Smart playlists with Lisp filter engine.
|
|||
## How to use
|
||||
|
||||
After [installing](#installation) the plugin and restarting Jellyfin
|
||||
create a file in `config/data/smartplaylists` like this:
|
||||
create a empty file in `config/data/smartplaylists` like this, maybe
|
||||
you want to generate a playlist of your favourite rock songs:
|
||||
|
||||
```
|
||||
$ echo '{}' > config/data/smartplaylists/a.json
|
||||
$ touch config/data/smartplaylists/Rock.yaml
|
||||
```
|
||||
|
||||
Afterwards run the Task `(re)generate Smart Playlists`, this will rename
|
||||
the `json` file and populate it with some default values. You can now
|
||||
the `yaml` file and populate it with some default values. You can now
|
||||
adjust the file to your liking. [Go here](examples/index.md) to see more
|
||||
examples.
|
||||
|
||||
Example file
|
||||
```json
|
||||
{
|
||||
"Id": "a1d02dee-f1da-4472-bee3-f568c15c8360",
|
||||
"Playlists": [
|
||||
{
|
||||
"PlaylistId": "24f12e1e-3278-d6d6-0ca4-066e93296c95",
|
||||
"UserId": "6eec632a-ff0d-4d09-aad0-bf9e90b14bc6"
|
||||
}
|
||||
],
|
||||
"Name": "a1d02dee-f1da-4472-bee3-f568c15c8360",
|
||||
"Program": "(begin (invoke item 'IsFavoriteOrLiked' (user)))",
|
||||
"Filename": "/config/data/smartplaylists/a1d02dee-f1da-4472-bee3-f568c15c8360.json",
|
||||
"Enabled": true
|
||||
}
|
||||
```yaml
|
||||
Id: Rock
|
||||
Playlists:
|
||||
- PlaylistId: 24f12e1e-3278-d6d6-0ca4-066e93296c95
|
||||
UserId: 6eec632a-ff0d-4d09-aad0-bf9e90b14bc6
|
||||
Name: Rock
|
||||
Program: (begin (invoke item "IsFavoriteOrLiked" (user)))
|
||||
Filename: /config/data/smartplaylists/Rock.yaml
|
||||
Enabled: true
|
||||
```
|
||||
|
||||
This is the default configuration and will always match all your
|
||||
favorite songs (and songs which are in favourited albums).
|
||||
|
||||
To change the filter you can append a `|` (pipe) to the Program
|
||||
line and write multiline filters like this:
|
||||
|
||||
```yaml
|
||||
Porgram: |
|
||||
(begin
|
||||
(invoke item "IsFavoriteOrLiked" (list user)))
|
||||
```
|
||||
|
||||
This is equivalent to the above example (not counting the other
|
||||
fields obviously).
|
||||
|
||||
|
||||
### Id
|
||||
|
||||
Arbitrary Id assigned to this playlist, can usually be left alone.
|
||||
The filename is derived from this.
|
||||
|
||||
### Playlists
|
||||
|
||||
|
@ -63,17 +74,29 @@ The user associated with this playlist.
|
|||
|
||||
The name of the generated playlists, this is just a default value.
|
||||
If the user changes the name of their playlist the plugin will
|
||||
work as usual
|
||||
still work and remember the correct playlist.
|
||||
|
||||
### Program
|
||||
|
||||
A lisp program to decide on a per item basis if it should be included in
|
||||
the playlist, return `nil` to not include items, return `t` to include
|
||||
them.
|
||||
the playlist, return `nil` to not include items, return any other value
|
||||
to include them.
|
||||
|
||||
The configuration page defines some useful functions to make it easier
|
||||
to create filters. The above filter for liked items could be simplified
|
||||
to: `(is-favourite)`.
|
||||
|
||||
#### Available definitions
|
||||
|
||||
- **lower**: lowercases a string (`(eq (lower "SomeString") "somestring")`)
|
||||
- **is-genre**: check if the item is of this genre, partial matches
|
||||
allowed, the example filter would match the genre "Nu-Metal" (`(is-genre "metal" (genre-list))`)
|
||||
- **is-genre-exact**: the same as `is-genre`, but does not match paritally
|
||||
- **is-favorite**: matches a favorite item (`(is-favorite)`)
|
||||
|
||||
### Filename
|
||||
|
||||
The path to this file.
|
||||
The path to this file, only used internally and updated by the program.
|
||||
|
||||
### Enabled
|
||||
|
||||
|
|
Loading…
Reference in a new issue