JSXGetURL

What does it do?

JSXGetURL Logo

JSXGetURL enhances any Adobe Creative Cloud application that has ExtendScript support, to make it easy to access servers using httphttps, sftp… from a script – e.g. to download assets from a remote server.

Sample Code

JSXGetURL works with InDesign, InDesign Server, InCopy, Illustrator, Photoshop… on Mac and Windows.

All you need to do is copy the whole JSXGetURL folder to sit alongside your own ExtendScript script, and then add an //@include line at the top of your script.

Sample code:

//@include "JSXGetURL/JSXGetURLLoader.jsx"
var getURL = JSXGetURL();

getURL.addRequestHeader("Accept: */*");
var s = getURL.get("https://www.rorohiko.com") + "";

alert(s.substr(0,1000));

var headers = getURL.getResponseHeaders();
alert(headers);

// Some random FTP file for testing

var f = new File("~/Desktop/sha512.sum");
var s = getURL.get("ftp://cygwin.com/pub/gcc/sha512.sum", f.fsName);

// Some zip file to test binary file download

var f = new File("~/Desktop/FrameReporter.1.1.8.zip");
getURL.get("https://www.rorohiko.com/downloads/FrameReporter.1.1.8.zip", f.fsName);

JSXGetURL is implemented as an ExtendScript DLL/framework, written in C/C++.

This version is only for desktop applications. We also have a version specifically for InDesign Server

We provide commercial training and developer support around JSXGetURL: if you need help integrating JSXGetURL into your custom solution, contact us at [email protected] to discuss training and support contracts.

Installing and Activating

  1. Download JSXGetURL

    Download link: https://www.rorohiko.com/downloads/JSXGetURL.1.1.5.zip

    To try it out before purchasing, unzip and run the sample.jsx script from your host app.

    You can perform 5 network transfers after each fresh restart of the host app.

    To activate and remove the transfer limit: activations cost US$ 49.oo per seat, and they last for a year.

  2. Download PluginInstaller.

    If you’ve not done this before, download and install the free PluginInstaller from PluginInstaller.com.

    Make sure you have build #558 or higher installed (the build number is shown in the lower right-hand corner of the PluginInstaller windows).

  3. Create an Account.

    If this is your first time using PluginInstaller, you’ll need to create a new account and register it within PluginInstaller.

    Make sure to click the confirmation link in the registration email!

  4. Add a JSXGetURL Bookmark.

    Add a bookmark for JSXGetURL into PluginInstaller by clicking the following link:

    Add JSXGetURL Bookmark into PluginInstaller

    Alternatively, you can use the Browse the Store for Software window in PluginInstaller and find the JSXGetURL bookmark in the Rorohiko Catalog.

  5. Activate.

    Once the bookmark is listed in the Installing and Ordering window, select it and fill in the number of seats required, then click ‘Purchase’.

    In the Licenses, Activations and Pending Orders window you can now see and select the order entry. Each time you click the entry, it will be refreshed. 

    After the payment process is complete, it will take some time for us to enable the activation – allow for up to 24 hours for us to finalize the activation from our end.

    Keep an eye on the status for the order – once the activation is complete, it will change from Purchased to Valid.

    The 5-transfer limit will now be removed from JSXGetURL.

Demo

sample.jsx contains useful code samples (setting options, headers, POST vs. GET…). Please inspect it with a text editor for some useful hints.

Access sample.jsx (with the JSXGetURL folder alongside it) from your host app. E.g in InDesign, you can use the Scripts panel, in Photoshop, you can use the File – Scripts – Browse… menu and browse for sample.jsx, and so on…

Run sample.jsx from the host app.

Integrating JSXGetURL Into Your Script

Copy the JSXGetURL subfolder to reside next to your own script (.jsx). Look into sample.jsx file for example code.

Modify your script, and at the top, add a line

//@include "JSXGetURL/JSXGetURLLoader.jsx"

Then set up your code by mimicking the code you see in sample.jsx, to perform the transfers you need.

Sublicensing/auto-activation

You might want to embed JSXGetURL into your own commercial software, or have JSXGetURL auto-activate so the end-user does not have to handle any activations.

To achieve this, you can embed activation info into your source code or you can work with a separate side-car file.

The embedded activation code ‘knows’ the seat count. If you want to auto-activate multiple systems from a single multi-seat license, you only need to generate a single embedded activation or  an .actv file, and the same information will activate all the sub-licensed workstations. No need to make individual activation files for all sub-licensed workstations.

In addition to your standard account (incoming), you also need a separate developer account (outgoing).

The incoming order will be placed using a standard account, and the outgoing sub-license will be issued by a developer account.

First, switch the PluginInstaller to Standard mode via the File – PluginInstaller Mode menu. Purchase a license for JSXGetURL as documented in the previous section.

Once the order is validated and the activation file has been imported, switch the PluginInstaller to Developer/Publisher mode.

If you don’t have a developer account yet, create and register one. Wait for a confirmation email, and make sure to check your spam filter.

The account must be fully registered for this to work: you need to wait and not proceed until the developer account shows a ‘smiley face’ in the accounts window.

Once you have a registered developer account, go to the Sublicensing window, and select the order.

Option 1: Embedding

Click the Copy button and then go to your source code, and Paste right after the line in your own source code where you load JSXGetURL:

var getURL = JSXGetURL();

so it looks like

var getURL = JSXGetURL();

TIGHTENER.setIssuer("1186cb861234567377c49d7eade","[email protected]");
TIGHTENER.sublicense("hdjshsajdshajdkas..lotsofit...NEmgd0UGH28dbI1RK0GRig==");

The software will now auto-activate when your customer runs it and the user won’t have to deal with activations.

TIGHTENER.sublicense() returns a boolean – it will return false if the activation fails for some reason, so you can verify in code whether the activation succeeded or not.

Option 2: Sidecar File

Alternatively, you can also change the Snippet Language dropdown to JSON Sidecar.

Click Copy and paste this data into a text file which you then save into a file with an .actv file name extension. You can use any filename that is meaningful to you.

When you install your software, store this file on the user’s computer in the folder
~/Library/Application Support/net.tightener/Licensing/AutoActivations
or
%APPDATA%\net.tightener\Licensing\AutoActivations
When you run your software, and invoke JSXGetURL, the activation will happen automatically.

Changing computers

When you need to activate on another computer you can transfer and re-use the same licensing info. Activations can be transferred over.

If you activate your copy of JSXGetURL by way of the PluginInstaller: you can export and import all your account and activation data between computers. Use the File – Export License Info… and File – Import License Info… to manage a transfer.

If you activate your copy by way of the sublicensing mechanism, then the activation will be transferred automatically.

Note that to avoid abuse, there is a limitation on how frequently you can re-activate: after you activate a seat on a particular computer, you need to wait at least 10 minutes before you can re-activate the same seat on another computer.

Version History

Version 1.1.5, 10-Jun-2024:

  • Upgraded internal Tightener module to build 547.
  • Now using payment processor with PluginInstaller – no more manual payment handling.

Version 1.1.4, 25-Apr-2024:

  • Can now set various CURL options (e.g. to follow redirects).
  • Upgraded dependencies: curl 8.7.1, OpenSSL 3.3.0, zlib 1.3.1

Version 1.1.3, 31-Mar-2024:

  • No changes to JSXGetURL. Unbundle PluginInstaller to avoid having to update JSXGetURL with each new PluginInstaller version.

Version 1.1.2, 26-Mar-2024:

  • No changes to JSXGetURL itself. Improvements to the bundled PluginInstaller.

Version 1.1.1, 22-Mar-2024:

  • No changes to JSXGetURL itself. License Manager renamed to PluginInstaller.

Version 1.1.0, 16-Mar-2024:

  • License Manager now handles dark mode.
  • Fixed a bug with sublicensing/autoactivation on machines that do not have License Manager installed.

Version 1.0.9, 7-Mar-2024:

  • Fixed bug in sub-licensing feature: sub-licensed workstations did not always activate, even with a valid .actv file or TIGHTENER.... code snippet.
  • The License Manager is the same as with version 1.0.8 – dark mode problems have not been fixed yet.

Version 1.0.8, 26-Feb-2024:

  • Improved License Manager

Version 1.0.7, 21-Feb-2024:

  • Fixed an issue with License Manager unable to activate

Version 1.0.6, 20-Feb-2024:

  • Fixed an of issue with sublicensing using sidecar files

Version 1.0.5, 19-Feb-2024:

  • Fixed a number of issues with sub-licensing and sidecar activation files.