Vor ungefähr 2 Jahren habe ich in einem ominösen Sommerloch Beitrag gezeigt wie man recht einfach iTunes unter MacOSX mit Hilfe von Ruby fernsteuern kann. Seit dem ist es von meiner Seite recht ruhig geworden in der Ruby-Mine. Das lag vor allem an einem veränderten beruflichen Umfeld und einem massiven Mangel an Freizeit ;-)
Zumindest für den Augenblick scheint es so, als hätte ich diesen Zustand hinter mir gelassen und hoffe das ich zukünftig wieder vermehrt mit Ruby zu tun habe und entsprechend hier auch Beiträge schreibe.
Nun aber zurück zum eigentlichen Thema. Aus unerklärlichen Gründen konnte ich mich nicht mehr daran erinnern, jemals so etwas gemacht zu haben. Und nun wollte ich plötzlich mein iTunes auf meinem Mac auslesen (auf was für Ideen man manchmal kommt :-)). Vor diesem Problem stand ich nun und wusste nicht wie ich anfangen sollte. Von “damals” war mir noch der Begriff “RubyCocoa” im Hinterkopf geblieben. Ist das noch up2date? Von Daniel bekam ich dann noch Macruby vor die Füße geworfen. “Das kann doch nicht so schwer sein” dachte ich mir.
Kurzes Googlen brachte keine wirklich vielversprechenden Lösungen. Doch dann folgte ich einem Link in ein Git-Respository. Und dort fand ich ein Skript mit folgender Zeile zu Beginn des Quelltextes:
require 'appscript' |
Was bitte ist appscript?
Offensichtlich ist diese tolle Erfindung völlig an mir vorbeigegangen. Wie man der Webseite entnehmen kann, handelt es sich bei appscript um eine “Apple event bridge” die es einem gestattet, von Ruby, Python und Objective-C aus auf MacOSX Anwendungen zuzugreifen.
Das klingt doch wunderbar. Und die Codebeispiele sehen auch schön rubylike aus. Also schnell per “sudo gem install rb-appscript” das Gem nachinstalliert.
Ein erstes Skript lief sogar auf Anhieb:
1 2 3 4 5 6 7 |
require 'rubygems' require 'appscript' iTunes = Appscript.app("iTunes.app") track = iTunes.current_track puts track.name.get |
Ich denke darauf kann man aufsetzen.
Eine gute Dokumentation zur API von appscript für iTunes gibt es hier: Klick. Und sogar eine Buch (wenn auch ein Draft) steht online zum Abruf bereit: Klick
Weiterhin wird ein Tool angeboten, mit dem sich AppleScript Kommandos in Python, Ruby und Objective-C Appscript-Syntax übersetzen lässt.
Damit dies nicht so bleibt hier nun ein Aufruf an alle Leser. Macht eure Skripte und Erfahrungen mit Ruby anderen zugänglich. Als Plattform ist die Ruby-Mine dafür bestens geeignet (laut alexa.com sogar auf Platz 107.904 aller deutschen Webseiten ;-)). Also meldet euch als Gastautor!
In der Hoffnung das dies nicht wieder mein letzter Beitrag für die nächsten zwei Jahre ist, wünsche ich allen einen schönen Abend!
Kommentar schreiben
Kommentare
Woah! Coole Sache! Applescript mag ja eine hübsch zu lesende Syntax haben, aber ich empfands trotzdem immer als eine Qual damit zu arbeiten (zumindest bei längeren Scripten). Mag auch daran liegen, dass ich bislang keine guten Tutorials dazu gefunden habe.
Wenn ich das recht verstehe, kann dieses Gem dieselben Schnittstellen nutzen, wie Apple-Script? Gleich mal ausprobieren…
require “rubygems” require “appscript” textmate = Appscript.app(“TextMate.app”) textmate.insert(“Hallo Welt!”)