我想通过Objective控制iTunes (我只是无法在我的OS/X10.6.3系统上正确地安装Python appscript .那将是我的第一选择)。
据我所知,可可上的IPC是基于Apple 的:有没有:
我知道Applescript编辑器/开放字典功能,但我不知道如何将我看到的信息转换为IPC调用。
注意:我已经尝试过通过PyObjC想出一个解决方案,但是我想要的主要功能是跟踪搜索,这是我无法理解的。
免责声明: OS/X超级新手在这里。
发布于 2010-05-09 15:19:58
你考虑过使用脚本桥吗?它内置在操作系统中,并与PyObjC一起工作。没有明确的搜索API,因为搜索是内置到AppleScript (谁的条款)中的,后者在Scripting中映射到NSPredicate。
>>> from Foundation import *
>>> from ScriptingBridge import *
>>> itunes = SBApplication.applicationWithBundleIdentifier_(u"com.apple.itunes")
>>> tracks = itunes.sources()[0].libraryPlaylists()[0].tracks()
<SBElementArray @0x468a630: every ITunesTrack of ITunesLibraryPlaylist 0 of ITunesSource 0 of application "iTunes" (157)>
>>> predicate = NSPredicate.predicateWithFormat_(u'artist == "Pink Floyd"')
>>> tracks.filteredArrayUsingPredicate_(predicate)
<SBElementArray @0x457b6c0: ITunesTrack whose 'cmpd'{ 'relo':'= ', 'obj1':'obj '{ 'want':'prop', 'from':'exmn'($$), 'form':'prop', 'seld':'pArt' }, 'obj2':'utxt'("Pink Floyd") } of ITunesLibraryPlaylist 0 of ITunesSource 0 of application "iTunes" (157)>另外,如果您是AppleScript新手,我强烈推荐脚本调试器的字典探险家。
发布于 2010-05-09 21:43:50
如果您对py-appscript有问题,请联系作者(那将是我)来排除它。包含有关所使用的Python安装、Xcode版本的信息,以及问题是特定于appscript还是影响到所有第三方模块或具有C扩展的第三方模块。另外,如果您使用的是python.org框架构建,而不是内置的Python,请确保安装了可选的OSX10.4SDK。
API文档可通过OS的AppleScript编辑器(文件>开放字典)、appscript的ASDictionary或其他第三方编辑器获得。如果安装了ASDictionary,还可以使用appscript的内置帮助()方法以交互方式浏览字典。
但是,众所周知,脚本应用程序的API文档是不够的,因此也需要对AppleScript的一般工作方式以及应用程序脚本的工作方式有一个很好的了解。苹果自己的AppleScript语言指南描述了所涉及的各种功能,但并没有提到如何将它们实际使用;如果你愿意存点钱的话,有几本好书可供阅读(免责声明:我只是自己写了一本)。
并期望通过在线文章、讨论论坛和现有脚本进行大量挖掘,寻找线索。道格的AppleScripts for iTunes是一个很好的iTunes脚本来源。当然,它们是用AppleScript编写的,但其中许多都可以在AppleScript编辑器中阅读,因此是一个很好的提示源,如果您使用appscript,您可以使用ASTranslate从AppleScript转换为appscript语法,作为编写自己的语法的起点。
https://stackoverflow.com/questions/2797703
复制相似问题