2010-05-09 91 views
2

我想通过Objective-C控制iTunes(我无法在我的OS/X 10.6.3系统上正确安装Python appscript ...这本来是我的第一选择)。iTunes Apple Events API

从我所收集,可可的IPC是基于苹果事件:有两种:在iTunes /苹果事件API

  1. 在线文档?
  2. 访问iTunes API的内省机制?

我知道有关AppleScript编辑/打开字典功能,但我无法弄清楚如何翻译我看到到IPC通话信息。

注:我已经尝试过制定出一个解决方案PyObjC但主要功能我后跟踪搜索我想不通。

声明: OS/X超级新手在这里。

回答

11

您是否考虑过使用Scripting Bridge?它内置在操作系统中,也可以与PyObjC一起使用。没有独特的搜索API,因为搜索内置于AppleScript(whose clauses)中,映射到Scripting Bridge中的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,我强烈建议脚本调试程序的dictionary explorer

+0

哇!太糟糕了我只有+1和接受!谢谢。 – jldupont 2010-05-09 17:01:40

+0

嗨jldupont,请使用OS X不OS/X ...它不是OS/2!对不起,我无关紧要的评论,但我无法抗拒:p – Yuji 2010-05-09 17:37:39

+2

SB的优点是它包含在操作系统中;缺点是它不如AppleScript(或appscript)。你支付你的钱,并采取你的选择... 顺便说一句,除了支持'谁的'子句,iTunes确实包含'搜索'命令;这对于一项特定任务来说是最好的,取决于你想要做什么。例如使用'who'子句:'app('iTunes')。tracks [its.artist =='Pink Floyd']。name()';使用'search'命令:'app('iTunes')。library_playlists [1] .search(for _ ='Pink Floyd',only = k.artists)' – has 2010-05-09 21:54:29

3

如果您在使用py-appscript时遇到问题,请联系作者(即我)以排除故障。包括正在使用的Python安装信息,Xcode版本,以及问题是否特定于appscript或影响所有含C扩展名的第三方模块或第三方模块。另外,如果您使用python.org框架构建而不是内置Python,请确保您已安装可选的OS X 10.4 SDK。

API文档可通过OS X的AppleScript编辑器(文件>打开字典),appscript的ASDictionary或其他第三方AS编辑器获得。如果安装了ASDictionary,则还可以使用appscript的内置help()方法以交互方式浏览字典。

但是,可编写脚本的应用程序的API文档是非常不合适的,因此,对于AppleScript在一般应用程序脚本以及特定应用程序脚本编写方面的理解也很有必要。苹果公司自己的AppleScript Language Guide描述了涉及的各种功能,但没有太多说明将它们实际使用;如果你愿意放下一些现金,可以买几本好书(免责声明:我自己只写了一本)。

并期望通过在线文章,讨论论坛和现有的线索进行大量的挖掘线索。 Doug's AppleScripts for iTunes是iTunes脚本的绝佳来源。当然,它们是用AppleScript编写的,但其中许多可以在AppleScript Editor中阅读,因此是一个很好的提示来源,如果您使用的是appscript,则可以使用ASTranslate将AppleScript转换为appscript语法作为起点在写你自己的。

+0

...再次,许多非常感谢! +1 – jldupont 2010-05-10 00:24:37