Action Directory / App Link

Install

Enter an affiliate App Store link in the text editor. Requires affiliate token and campaign tracking code.

Shared by viticci

Script

// Change the two variables below to your iTunes affiliate code and preferred campaign tracking code, enclosing it with quotes.

var affiliate = '10l6nh'
var campaign = 'ms_inline'

var initial;
var entities = ["iPhone|software", "iPad|iPadSoftware", "Mac|macSoftware"];

if (editor.getSelectedText()) {
    initial = editor.getSelectedText();
} else {
    initial = '';
}

ui.list('App Type', entities, false, setEntity);

function setEntity(selectedValues) {
    if (!selectedValues) { //user pressed Cancel
        return;
    }
    var apptype = selectedValues.join('\n');
    ui.input('App Name', initial, 'Enter app name', searchApp);
    function searchApp(appName) {
    if (!appName) { //user pressed Cancel button
        return;
    }
    ui.hudProgress('Searching');
    http.get('https://itunes.apple.com/search', { term: appName, media: 'software', country: 'us', entity: apptype }, handleResponseData);
}

function handleResponseData(response, error) {
    if (error) {
        ui.hudError();
        return;
    }
    ui.hudDismiss();
    var listData = response.results.map(function(item) {
        //this value will be inserted into the document
        var value = '[' + editor.getSelectedText() + ']' + '(' + item.trackViewUrl + '&at=' + affiliate + '&ct=' + campaign + ')';
        return item.trackName + '|' + value + '|' + item.formattedPrice;
    });
    ui.list('Search Result', listData, true, insertAppInfo);
}

function insertAppInfo(selectedValues) {
    if (!selectedValues) { //user pressed Cancel
        return;
    }
    var text = selectedValues.join('\n');
    if (editor.isClosed()) { //create new file if needed
        editor.newFile(text);
    }
    else {
        editor.replaceSelection(text);
    }
}
}