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