chore: Add readme and one example for now.
This commit is contained in:
parent
d74f9a8074
commit
e1f6bd5117
3 changed files with 94 additions and 0 deletions
85
README.md
Normal file
85
README.md
Normal file
|
@ -0,0 +1,85 @@
|
|||
# Jellyfin SmartPlaylist Plugin
|
||||
|
||||
Smart playlists with lisp filter engine.
|
||||
|
||||
## How to use
|
||||
|
||||
After [installing](#installation) the plugin and restarting Jellyfin
|
||||
create a file in `config/data/smartplaylist` like this:
|
||||
|
||||
```
|
||||
$ echo '{}' > config/data/smartplaylist/a.json
|
||||
```
|
||||
|
||||
Afterwards run the Task `(re)generate Smart Playlists`, this will rename
|
||||
the `json` 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
|
||||
}
|
||||
```
|
||||
|
||||
### Id
|
||||
|
||||
Arbitrary Id assigned to this playlist, can usually be left alone.
|
||||
The filename is derived from this.
|
||||
|
||||
### Playlists
|
||||
|
||||
A list of Playlist/User mappings. By default all users get an entry.
|
||||
|
||||
The ids must have the dashes in them as of now. To convert a id
|
||||
from without dashes to the canonical form run this command:
|
||||
|
||||
`echo '<your id here>' | python3 -c 'import uuid; import sys; print(uuid.UUID(sys.stdin.read().strip()))'`
|
||||
|
||||
To get your user id navigate to your user profile and copy the part
|
||||
after `userId` in the address bar.
|
||||
|
||||
#### PlaylistId
|
||||
|
||||
The id of the playlist that should be managed, must be owned by the
|
||||
corresponding user.
|
||||
|
||||
#### UserId
|
||||
|
||||
The user associated with this playlist.
|
||||
|
||||
### Name
|
||||
|
||||
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
|
||||
|
||||
### 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.
|
||||
|
||||
### Filename
|
||||
|
||||
The path to this file.
|
||||
|
||||
### Enabled
|
||||
|
||||
Enable this playlist, currently ignored.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
Download the `.dll` in the releases section and place it in your `plugin` directory.
|
5
examples/a1d02dee-f1da-4472-bee3-f568c15c8360.json
Normal file
5
examples/a1d02dee-f1da-4472-bee3-f568c15c8360.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"Id": "a1d02dee-f1da-4472-bee3-f568c15c8360",
|
||||
"Name": "Favourite Pop",
|
||||
"Program": "(and (invoke item 'IsFavoriteOrLiked' (user)) (find 'Pop' (car (getitems item 'Genres'))))"
|
||||
}
|
4
examples/index.md
Normal file
4
examples/index.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Examples
|
||||
|
||||
* [Favourite Pop](a1d02dee-f1da-4472-bee3-f568c15c8360.json): A Playlist
|
||||
containing all favourite items of the genre pop.
|
Loading…
Reference in a new issue