I’m trying to differentiate between iTunes playlists that are folders and ones that aren’t.
In AppleScript there seem to be two ways to do this:
I can get all folder playlists and process them individually from user playlists:
set userPlaylists to user playlists set folderPlaylists to folder playlists -- …do processing
I can check the class of a playlist using
class of pl is folder playlist
(wherepl
is my playlist).
Both methods don’t seem to work with JXA.
The first method does not work because accessing .folderPlaylists()
results in Error: Message not understood
(where app = Application('iTunes')
). Every other type of playlist can be accessed this way (app.playlists()
, app.libraryPlaylists()
, app.radioTunerPlaylists()
, app.subscriptionPlaylists()
, app.userPlaylists()
, app.audioCDPlaylists()
all work). Is this a bug?
So I tried replicating the second method. As far as I understood, ObjectSpecifier.classOf
should give me the object type as a string. However, it only returns the type that was requested by the object specifier that gave me the object.
So while in AppleScript class of (first item of (playlists whose name is "«Name of a folder playlist»"))
gives me folder playlist
, ObjectSpecifier.classOf(app.playlists.whose({name: '«Name of a folder playlist»'})()[0])
just returns "playlist"
(presumably because I used app.playlists
to get to the object).
Isn’t there a function that would return the actual type of the playlist (e.g. "folder playlist"
, or "user playlist"
)?