Samply.app: Improved UI interactivity with Developer Tools
Title
Samply.app: Improved UI interactivity with Developer Tools
What do you expect to happen when you run the script/macro?
Automating Samply is extremely clunky and some things simply do not work.
Are you seeing an error?
Cannot find UI element
What happens when you run this script?
Hey everyone!
I'm not sure if anyone else uses Samply.app but it's an incredible way to quickly send clients mixes and keep track of revisions. The issue I'm facing is automating processes inside it are pretty clunky and don't work exactly how I'd like. I know that the desktop application has the option to toggle developer tools but as someone who knows very little, it's not helping me much. I was wondering if it would in fact be possible to have this more seamlessly integrated with those tools being immediately accessible
How were you running this script?
I used a Stream Deck button
How important is this issue to you?
3
Details
{ "inputExpected": "Automating Samply is extremely clunky and some things simply do not work.", "inputIsError": true, "inputError": "Cannot find UI element ", "inputWhatHappens": "Hey everyone!\n\nI'm not sure if anyone else uses Samply.app but it's an incredible way to quickly send clients mixes and keep track of revisions. The issue I'm facing is automating processes inside it are pretty clunky and don't work exactly how I'd like. I know that the desktop application has the option to toggle developer tools but as someone who knows very little, it's not helping me much. I was wondering if it would in fact be possible to have this more seamlessly integrated with those tools being immediately accessible ", "inputHowRun": { "key": "-MpfwmPg-2Sb-HxHQAff", "title": "I used a Stream Deck button" }, "inputImportance": 3, "inputTitle": "Samply.app: Improved UI interactivity with Developer Tools" }
Source
const samply = sf.ui.app("com.electron.samply")
const projectsTab = samply.mainWindow.groups.first.groups.first.groups.first.groups.first.children.whoseRole.is("AXWebArea").whoseTitle.is("History").first.groups.first.groups.first.groups.allItems[1].children.whoseRole.is("AXList").first.children.whoseRole.is("AXLink").whoseDescription.is("Projects ").first
const newProjectButton = samply.mainWindow.groups.first.groups.first.groups.first.groups.first.children.whoseRole.is("AXWebArea").whoseTitle.is("Projects").first.groups.first.groups.first.groups.allItems[2].children.whoseRole.is("AXList").first.buttons.whoseTitle.is("New").first
const createProjectWindow = samply.mainWindow.groups.first.groups.first.groups.first.groups.first.children.whoseRole.is("AXWebArea").whoseTitle.is("Projects").first.groups.first.groups.first.groups.allItems[4].groups.allItems[1]
function main() {
samply.appActivateMainWindow();
samply.mainWindow.invalidate();
projectsTab.elementClick();
sf.wait({ intervalMs: 150 });
newProjectButton.elementClick();
createProjectWindow.elementWaitFor();
createProjectWindow.groups.allItems[1].textFields.whoseTitle.is("Name").first.elementSetTextFieldWithAreaValue({
value: "Test"
});
}
main();
Links
User UID: EoVu20w2ZRTvmJvgozc57ZXuAhU2
Feedback Key: sffeedback:EoVu20w2ZRTvmJvgozc57ZXuAhU2:-NgzocUeqzu6fG2R5WB4
Feedback ZIP: g0vkibB5aT/SW19T8OuawaF2idIAIeNOWgd2sdLCnnaU1ox3pdHDXmmu6g1GUmUOO08p3z2FTUe9UpDlepJdHmF5zy++08tk+nwI2xUIbSMVRuhXqPPSJwD3lXT+Cw7C91MDlbzypl/7LeesmP/yXCQKVeshUG1XpFFclYkueRys7NKOkp1t56zyvCjVltYNS6o+uDO4Bs58FhLlKq8Jln6coaes0Y4Q+o0Seax8ClYxznzaB7Iu81VzpGgOtnEF10o4uh+SL3AZ6Wg29uPICD3xAZBYP/JO04GiceXSthAeM2QfJ/WndLSQwBrZzqJtdZVUIAmS0TiBrdkm+WF1kj+ugwQgTDq0N+pGVKDj2Rc=
- Nathan Salefski @nathansalefski
@chrscheuer I saw this but I am uncertain if this has any relevance here Using an API of another program in Soundflow - AIRTABLE #post-7
- In reply tonathansalefski⬆:Christian Scheuer @chrscheuer2023-10-17 23:05:45.841Z
Hi Nathan,
Improving integration with Samply's app will most likely need the Samply team to work on some things on their end. I do think they wish to do this, but it might help if you reach out as a customer directly to them as well to voice your wish for that :)
Nathan Salefski @nathansalefski
Funny enough moments ago I just reached out and they informed me that they just finished building an API. Hopefully some improvements can be made once that's made available.