The Squeeze API is primarily based on the squeeze.Squeeze class.
Before you begin using it, setup squeeze.
var squeeze = require('/path/to/squeeze');
squeeze.API_KEY = 'YOUR UploadJuicer API key'
All operations are done via the Squeeze class. For now only one operation is supported per instance.
Create a new Squeeze passing the URL of the image to convert
var s = new squeeze.Squeeze('http://farm5.static.flickr.com/4116/4774485856_e9aa9d81cf_b.jpg');
Use Squeeze.op to queue up an operation to be performed on the image. For example, to resize
the image
// resize 100x100
s.op('size', '100x100>')
Squeeze.op returns the object itself, so that you can chain multiple calls, although that isn't supported yet.
For boolean operations, you can skip the value argument and it will be set to true.
Squeeze.op creates a new image for every operation. If you want to perform multiple operations on the same image,
say flip it first and then resize it, then you use Squeeze.and.
// enhance followed by flop
s.op('enhance')
.and('flop')
Squeeze.and takes the same parameters as Squeeze.op.
Once the Squeeze instance is set up, you can perform the actual operation using two modes, polling or notification.
This method submits the job and then polls the UploadJuicer service every 5 seconds to check the status of the job.
The callback function is executed with the results when the job is completed. If any errors occur, err will describe
the error and data may or may not be meaningful. If no errors occur and the job finishes successfully, err will be null
and data will be a JavaScript object as parsed from the reply defined by the UploadJuicer API
The callback function should be function (err, data) {}.
s.poll(function (err, data) {
if(err)
console.error(err);
else
console.log("Finished:", sys.inspect(data));
});
NOT IMPLEMENTED
This utilizes UploadJuicer's capability to POST data to your custom URL when the job is done and avoids having to poll the server. This is not yet implemented by Squeeze.