2010-05-09 9 views
2

Je voudrais contrôler iTunes via Objective-C (je ne peux pas installer correctement Python appscript sur mon système OS/X 10.6.3 ... cela aurait été mon premier choix).iTunes Apple Events API

D'après ce que je comprends, l'IPC sur le cacao est basé sur Apple Events: est là non plus:

  1. Documentation en ligne sur les événements iTunes/Apple API?
  2. Mécanisme d'instruction pour accéder à l'API iTunes?

Je sais sur AppleScript Editor/Open fonctionnalité dictionnaire, mais je ne peux pas comprendre comment traduire les informations que je vois dans les appels IPC.

Note: Je l'ai déjà essayé Élaborons par PyObjC mais la fonction principale que je suis après est-piste de recherche que je ne peux pas comprendre.

Clause de non-responsabilité: OS/X super-newbie here.

Répondre

11

Avez-vous envisagé d'utiliser Scripting Bridge? Il est intégré au système d'exploitation et fonctionne également avec PyObjC. Il n'y a pas d'API de recherche distincte car la recherche est intégrée à AppleScript (whose clauses), qui est mappée à NSPredicate dans Scripting Bridge.

>>> 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)> 

De plus, si vous êtes nouveau AppleScript, je recommande fortement Script Debugger de dictionary explorer.

+0

Wow! dommage que je n'ai qu'un +1 et accepte! Merci. – jldupont

+0

Salut jldupont, s'il vous plaît utilisez OS X pas OS/X ... ce n'est pas OS/2! Désolé pour mon commentaire non pertinent, mais je n'ai pas pu résister: p – Yuji

+2

L'avantage de SB est qu'il est inclus dans le système d'exploitation; l'inconvénient est que ce n'est pas aussi bon que AppleScript (ou appscript). Vous payez votre argent et prenez votre choix ... BTW, iTunes inclut une commande 'search' en plus de supporter les clauses' dont'; ce qui est le mieux pour une tâche particulière dépend de ce que vous voulez faire. par exemple. En utilisant une clause 'which':' app ('iTunes'). Pistes [its.artist == 'Pink Floyd']. Nom() '; en utilisant la commande 'search':' app ('iTunes'). library_playlists [1] .search (pour _ = 'Pink Floyd', only = k.artists) ' – has

3

Si vous rencontrez des problèmes avec py-appscript, veuillez contacter l'auteur (ce serait moi) pour le dépanner. Incluez des informations sur les installations Python utilisées, la version de Xcode et si le problème est spécifique à appscript ou affecte tous les modules tiers ou modules tiers avec des extensions C. En outre, si vous utilisez une construction de framework python.org plutôt que le Python intégré, assurez-vous que le SDK OS X 10.4 optionnel est installé.

La documentation de l'API est disponible via l'éditeur AppleScript d'OS X (Fichier> Dictionnaire ouvert), ASDictionary d'appscript ou d'autres éditeurs AS tiers. Si ASDictionary est installé, vous pouvez également utiliser la méthode help() intégrée d'appscript pour parcourir le dictionnaire de manière interactive.

Les documents d'API des applications scriptables sont notoirement insuffisants. Il est donc également nécessaire de bien comprendre le fonctionnement d'AppleScript en général et des scripts d'application en particulier. Le propre AppleScript Language Guide d'Apple décrit les diverses caractéristiques impliquées, mais ne dit pas grand chose de les mettre en pratique; il y a plusieurs bons livres disponibles si vous êtes prêt à déposer de l'argent (avertissement: je viens de co-écrit un moi-même).

Et attendez-vous à faire un bon nombre de recherches dans les articles en ligne, les forums de discussion et les scripts existants pour trouver des indices. Doug's AppleScripts for iTunes est une excellente source de scripts iTunes. Ils sont écrits en AppleScript, bien sûr, mais beaucoup d'entre eux peuvent être lus dans AppleScript Editor, donc sont une excellente source de conseils, et si vous utilisez appscript, vous pouvez utiliser ASTranslate pour convertir d'AppleScript à la syntaxe appscript comme point de départ en écrivant le vôtre.

+0

... et encore, beaucoup de mercis! +1 – jldupont