jellyfin-smart-playlist/Jellyfin.Plugin.SmartPlaylist/build.yaml

80 lines
3.4 KiB
YAML
Raw Permalink Normal View History

2024-10-28 01:44:23 +01:00
name: Smart Playlist
guid: dd2326e3-4d3e-4bfc-80e6-28502c1131df
2024-12-22 18:47:46 +01:00
version: 0.4.0.0
2024-11-24 23:28:57 +01:00
targetAbi: 10.10.3.0
2024-10-28 01:44:23 +01:00
framework: net8.0
owner: redxef
overview: Smart playlists with Lisp filter engine.
description: |
Create smart playlists with a Lisp filter engine.
The same playlist definition can be used for multiple users.
category: "General"
artifacts:
- jellyfin-smart-playlist.dll
2024-11-07 22:36:12 +01:00
- YamlDotNet.dll
2024-10-28 01:44:23 +01:00
changelog: |
2024-12-22 18:47:46 +01:00
## v0.4.0.0
- Add a basic UI to configure the playlists.
- It's now possible to print log messages to the jellyfin log by calling `logd`, `logi`, `logw` or `loge`
for the respective levels `debug`, `info`, `warning` or `error`.
- Allow calling generic methods via `(invoke-generic object methodname args list-of-types)`.
- Add quoting via single quote: `'`.
- Add special case for `(quote <form>)` to be rendered as `'<form>`.
- It is now possible to include comments in the source via a semicolon (`;`).
- Respect the `Enabled` flag and only process the playlists that are enabled.
- New methods have been added: `rand`, `shuf`.
- Add `find-artist`, `get-name` and `find-parent` default definitions.
- Update YamlDotNet to v16.2.1.
**Breaking changes**:
- Rename global environment variables to be enclosed by `*`.
**Fixes**:
- The initialization of the executor now contains the same default definitions for the SortProgram and the normal Program.
- The progress report now considers the SmartPlaylists and not the individual playlists per user.
- It is now possible to pass builtins as arguments. Previously to get `(qsort > (list 1 2 3))` one had to write
something like this: `(qsort (lambda (a b) (> a b)) (list 1 2 3))`.
- A program no longer has to be a list, `t` is a valid program.
- Fix list parsing in cases where a space was before the closing parenthesis.
2024-11-24 23:28:57 +01:00
## v0.3.0.0
- Add a second program (`SortProgram`) which is run after the filtering, this
program should return the list of items, but in the order in which they should appear in
the playlist. The default is `(begin items)` which returns the list as is.
- Extend builtin lisp definitions: add `qsort` and string comparison methods
- Extend default program definitions: add `all-genres` and `any-genres` to quickly specify a list of genres which to include (or excluding when negating)
- Update Jellyfin to v 10.10.3
**Fixes**:
- The progress report now correctly gives a percentage in the range [0, 100].
## v0.2.2.0
- Update Jellyfin to v 10.10.2
2024-11-11 18:17:32 +01:00
## v0.2.1.0
- Make default program configuration a textarea in the settings page
- Add convinience definitions: `is-type`, `name-contains`
- Update YamlDotNet to v 16.2.0
**Fixes**:
- The default program was malformed, a closing bracket was at the wrong position
- The `haskeys` function could only be called on Objects
2024-11-08 20:38:28 +01:00
## v0.2.0.0
- Switch to yaml loading, old json files are still accepted
- Rework lisp interpreter to be more conventional
- Use arbitrary strings as ids for playlists
- Add configuration page with some default definitions for
the filter expressions.
2024-11-24 23:28:57 +01:00
**Breaking Changes**:
2024-11-08 22:40:38 +01:00
- The lisp interpreter will now only detect strings in double quotes (`"`).
2024-11-08 20:38:28 +01:00
- The interpreter will also not allow specifying lists without quoting them.
`(1 2 3)` ... used to work but will no longer, replace by either specifying
2024-11-08 22:40:38 +01:00
the list as `(list 1 2 3)` or `(quote (1 2 3))`.
2024-11-08 20:38:28 +01:00
## v0.1.1.0
2024-10-28 01:44:23 +01:00
- Initial Alpha release.