using MediaBrowser.Model.Plugins; namespace Jellyfin.Plugin.SmartPlaylist { public class PluginConfiguration : BasePluginConfiguration { public PluginConfiguration() { InitialProgram = """ (begin (define lower (lambda (s) (invoke s "ToLower" nil))) (define is-genre (lambda (g g-list) (any (lambda (x) (invoke (lower x) "Contains" (list (lower g)))) g-list))) (define is-genre-exact (lambda (g g-list) (find g g-list))) (define genre-list (lambda nil (let (_g (getitems item "Genres")) (if (null _g) nil (car _g))))) (define is-favorite (lambda nil (invoke item "IsFavoriteOrLiked" (list user)))) (define is-type (lambda (x) (and (haskeys item "GetClientTypeName") (invoke (invoke item "GetClientTypeName" nil) "Equals" (list x))))) (define name-contains (lambda (x) (invoke (lower (car (getitems item "Name"))) "Contains" (list (lower x))))) (define is-favourite is-favorite) (define all-genres (lambda (want have) (all (lambda (x) (is-genre x have)) want))) (define any-genres (lambda (want have) (any (lambda (x) (is-genre x have)) want))) (define get-name (lambda (x) (car (getitems x "Name")))) (define find-parent (lambda (typename) (invoke-generic item "FindParent" nil (list typename))))) """; } public string InitialProgram { get; set; } } }