name: Smart Playlist guid: dd2326e3-4d3e-4bfc-80e6-28502c1131df version: 0.3.0.0 targetAbi: 10.10.3.0 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 - YamlDotNet.dll changelog: | ## 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 ## 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 ## 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. **Breaking Changes**: - The lisp interpreter will now only detect strings in double quotes (`"`). - 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 the list as `(list 1 2 3)` or `(quote (1 2 3))`. ## v0.1.1.0 - Initial Alpha release.