Skip to content

Instantly share code, notes, and snippets.

@zvoase
Created October 19, 2008 20:43
Show Gist options
  • Save zvoase/17932 to your computer and use it in GitHub Desktop.
Save zvoase/17932 to your computer and use it in GitHub Desktop.
"untiny" Ubiquity Command
// Copyright (c) 2008 Zachary Voase
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
function previewTinyURL (previewBlock, tinyURL) {
jQuery.ajax({
type: "GET",
url: "http://utilitymill.com/api/xml/utility/ResolveTinyURL/9/run",
data: "tinyurl=" + escape(tinyURL),
dataType: "xml",
success: function (data) {
q = jQuery(data);
expandedURL = q.find("output:first").text();
if (expandedURL.substring(0, 9).toLowerCase() == 'traceback') {
previewBlock.innerHTML = "";
} else {
previewBlock.innerHTML = "Expand " + tinyURL + " to " + expandedURL;
}
}
});
}
function executeTinyURL (tinyURL) {
jQuery.ajax({
type: "GET",
url: "http://utilitymill.com/api/xml/utility/ResolveTinyURL/3/run",
data: "tinyurl=" + escape(tinyURL),
dataType: "xml",
success: function (data) {
q = jQuery(data);
expandedURL = q.find("output:first").text();
if (expandedURL.substring(0, 9).toLowerCase() == 'traceback') {
displayMessage("Not a valid URL shortening service.");
} else {
CmdUtils.setSelection(
CmdUtils.renderTemplate(
'<a href="${expandedURL}">${expandedURL}</a>',
{expandedURL: expandedURL}));
}
}
});
}
CmdUtils.CreateCommand({
name: "untiny",
description: "Resolve a shortened URL (i.e. via TinyURL, bit.ly, etc.) to its full address.",
homepage: "http://bit.ly/2KLsw9",
author: {name: "Zachary Voase", email: "[email protected]"},
license: "MIT License",
help: "If you have selected a shortened URL then it will expand it in-place, replacing it with the full URL as a link.",
takes: {tinyURL: noun_arb_text},
preview: function (previewBlock, tinyURL) {
if (tinyURL.text.length == 0) {
previewTinyURL(previewBlock, CmdUtils.getSelection());
} else {
previewTinyURL(previewBlock, tinyURL.text);
}
},
execute: function (tinyURL) {
if (tinyURL.text.length == 0) {
executeTinyURL(CmdUtils.getSelection());
} else {
executeTinyURL(tinyURL.text);
}
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment