Перевести AppleScript в приложение Python (`do javascript`)

Это шаблон AppleScript:

tell application "Adobe Photoshop CS5"
  set theFile to alias “Application:Documents:MyFile” open theFile
  do javascript (file <path to Emboss.jsx>) with arguments { 75,2,89 }
end tell

И я хотел бы перевести это на Python-приложение. К сожалению, я не могу понять, как перевести do javascript, Есть идеи?

Я даже не знаю, как это выяснить. Может быть, я слишком мало знаю AppleScript. Является do ключевое слово? Или это команда, которую я посылаю в приложение? Является javascript параметр do? Или делает do javascript принадлежать друг другу (как команда с пробелом)?

2 ответа

Решение

Перевести родовой AppleScript в appscript, использовать ASTranslate инструмент доступен из appscript веб-сайт здесь. Он не всегда может успешно выполнить перевод из-за излишеств и ошибок в определениях сценариев некоторых приложений, но это хорошее место для начала.

Я до сих пор точно не знаю, как перевести вышеперечисленное (и в целом: я не знаю, как перевести какой-либо универсальный код AppleScript в скрипт Python).

Однако для приведенного выше случая я обнаружил, что есть команда do_javascript, Кажется, он не выполняет файлы, а выполняет непосредственно заданную строку кода JS.

Например, это работает:

from appscript import *
import os, sys

ps = app("Adobe Photoshop CS5")

filelist = sys.argv[1:]

jsCode = """
var g_StackScriptFolderPath = app.path + "/Presets/Scripts/" 
var runMergeToHDRFromScript = true; 
$.evalFile(g_StackScriptFolderPath + "Merge to HDR.jsx");
mergeToHDR.mergeFilesToHDR(%s, true);
""" % (repr(filelist),)

ps.do_javascript(jsCode)
Другие вопросы по тегам