Перевести AppleScript в приложение Python (`do javascript`) - PullRequest
1 голос
/ 15 августа 2011

Это шаблон 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 appscript. К сожалению, я не могу понять, как перевести do javascript. Есть идеи?

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

Ответы [ 2 ]

1 голос
/ 15 августа 2011

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

1 голос
/ 15 августа 2011

Я до сих пор точно не знаю, как перевести вышеприведенное (и в целом: я не знаю, как перевести какой-либо универсальный код 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)
...