Wie es scheint, dass dies ein echter Randfall ist, hier eine Übersicht dessen, was ich getan habe. Ich plane irgendwann einen Blog-Post über meine Lösung zu schreiben, aber es ist immer noch sehr rauh an den Rändern.
Es scheint, dass - aus irgendeinem seltsamen Grund - KI keine Möglichkeit hat, HTTP-Anfragen zu stellen, während die meisten anderen Adobe (CS) -Anwendungen dazu in der Lage sind. Es stellt sich jedoch heraus, dass man eine Bibliothek namens BridgeTalk (die mit allen CS-Apps geliefert wird) verwenden kann, um die Kommunikation zwischen verschiedenen Anwendungen zu erleichtern.
BridgeTalk läuft durch die Adobe Bridge-App (wie Sie vielleicht erraten haben) und aktiviert asynchrone (und synchrone, mit einem kleinen Trick) Ausführung von serialisiertem Code.
Bridge wird mit einer Web-Socket-Bibliothek geliefert, mit der Anfragen an externe Server gestellt werden können. Mein AI-Skript durchläuft nun kleine benutzerdefinierte API- und HTTP-Wrapper, und ich verwendete den HTTP-Parser von Extendables framework, um die Antwort zu verarbeiten. Der Einfachheit halber erzwinge ich synchrone Anfragen.
Als Beispiel die API ich schaffen sieht aus wie etwas, am Ende (vorausgesetzt, ein Objekt foo
mit einem Attribut uuid
):
function synchFoo(foo) {
var options = {
path : '/api/foos/' + foo.uuid + 'sync',
format: 'json',
method: 'POST',
host : '127.0.0.1:3000',
data : fooDataToString(foo)
}
var response = bridgeHTTP.sendSynch(options);
return JSON.parse(response.body);
}
Dieser Ansatz das einzige, was ich zur Arbeit bekommen konnte (über Versionen von AI) und ist immer noch ziemlich instabil und daher nicht bereit für die Veröffentlichung. Das Projekt um diese Lösung wurde jedoch aufgegeben, also halten Sie nicht die Luft an.
FYI, ich kam vor kurzem für die asynch Fall: https://gist.github.com/mericson/6509997 – David
Ist dies Ihr Blog Post? Wenn nicht, ist es ein ähnliches: http://selfdocumentingcode.blogspot.com/2009/05/using-adobe-bridgetalk-synchronously.html – David
Nein, nicht meins - sorry. Aber ich glaube, ich habe es während meiner Arbeit als Quelle benutzt. – polarblau