将AppleScript转换为Python appscript(`do javascript`)

时间:2011-08-15 13:33:37

标签: python applescript appscript py-appscript

这是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是关键字吗?或者它是我发送给应用程序的命令? javascriptdo的参数吗?或者do javascript是否属于一起(作为带空格的命令)?

2 个答案:

答案 0 :(得分:1)

我仍然不知道如何翻译上述内容(更一般地说:我不知道如何将任何通用AppleScript代码翻译成Python appscript。)

但是,对于上述情况,我发现有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)

答案 1 :(得分:1)

要将通用AppleScript转换为appscript,请使用ASTranslate网站here中提供的appscript工具。由于某些应用程序的脚本定义中的怪癖和错误,它并不总是能够成功翻译,但它是一个很好的起点。