@woland said:
Kinda a weird workaround, but if you tell them to always save the file into the same folder as the Isadora file (or the desktop), you can have an Automater Applescript waiting for files to be saved into that folder. When they are, the script can check all the names of the .txt files in the folder and save the names into another "Master List" .txt file (with a set name) formatted so that each file your client saves is added as a new line to the "Master List" .txt file. That way, you can have a Data Array actor looking for the Master File that will allow your client to use the Control Panel to select which file name they want to load in. You may want to put this "Master List" Data Array actor and Control Panel in a separate Scene with a separate Control Panel so that you can add a button on your normal Control Panel that jumps you into the Master List/File Select Scene. Either that or always keep it active as a background Scene and add Controls so that you can always use it to select which Data Array actor file your client wants to select for your main Scene.
Here's a zip file with an example file, some sample text files, and an Applescript with some instructions for setup at the beginning.
Applescript:
(*
Script written by L Wilson-Spiro, 2020-12-09
Lucaswilsonspiro.wordpress.com
Technical design consultations for installations, interactive technology, and live performance
Projection and lighting design
Show Control and video programming
Theatrical electrics and carpentry
Please direct questions to lucaswilsonspiro@gmail.com
I do my best to answer emails as soon as possible.
1) You'll need to put this folder (IsadoraFolder) on your desktop in order for this to work.
2) Whenever you save a new text file with the "File Selection" Data Array actor, make sure that it's saved to the folder "IsadoraFolder" on the desktop.
3) You'll need to follow the instructions here to monitor the folder "IsadoraFolder" on the Desktop in order to run this script whenever a file is added to the folder: https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/WatchFolders.html
You may need to give this script permission to perform changes.
1) Go to System Preferences > Security & Privacy > Accessibility
2) Click the lock (bottom left) > enter password
3) Click the "+" button
4) In the resulting dialog, locate and select this script (FileNameList)
5) Click the "+" button
6) In the resulting dialog, go to Applications > locate and select "Script Editor"
7) Click the lock again
Resources used:
Applescript find Username: https://discussions.apple.com/thread/3152534
Applescript list of files in folder without extension: https://stackoverflow.com/questions/37299815/applescript-how-do-i-get-get-a-file-list-of-files-in-folder-and-remove-extensio
Applescript list of files in folder with extensions: https://apple.stackexchange.com/questions/342773/can-applescript-get-folder-contents-with-file-extension-exclusion
Applescript write text to file: https://stackoverflow.com/questions/3780985/how-do-i-write-to-a-text-file-using-applescript
Applescript File paths: https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/ReferenceFilesandFolders.html
Getting AppleScript to output multiple lines to shell https://gist.github.com/hynkle/7432418
*)
-- FIND USERNAME --
set userName to short user name of (system info)
-- SET FILEPATH TO FOLDER --
set theFolder to "/Users/" & userName & "/Desktop/IsadoraFolder" as POSIX file
-- SET FILEPATH TO FILENAMELIST.TXT --
set textFile to "Users/" & userName & "/Desktop/IsadoraFolder/FileNameList.txt"
-- CREATE MULTI-LINE STRING WITH .TXT FILE NAMES --
tell application "Finder"
-- Get full list of names of .txt files in the folder
set fileList to name of every file in folder theFolder whose name extension is "txt"
-- Start process of making each file name on a new line
set myString to "" as text
-- Put each file name on a new line
repeat with myItem in fileList
set myString to myString & myItem & linefeed
end repeat
end tell
list folder theFolder
-- WRITE LIST OF FILE NAMES TO FILENAMELIST.TXT --
do shell script "echo " & quoted form of myString & " > " & quoted form of textFile