jquery-url-shortner
Version:
jQuery plugin for Shortening URLs using Google URL shortener API.
92 lines (80 loc) • 2.74 kB
JavaScript
/*!
* jQuery URL Shortener 1.0
* https://github.com/hayageek/jQuery-URL-shortener
*
* Date: 24-Oct-2013
*/
(function ($) {
var scriptsLoaded = false;
var clientLoaded = false;
$.getScript("https://apis.google.com/js/client.js", function () {
(function checkIfLoaded() {
if (gapi.client) {
scriptsLoaded = true;
gapi.client.setApiKey($.urlShortener.settings.apiKey);
gapi.client.load('urlshortener', $.urlShortener.settings.version, function () {
clientLoaded = true;
});
} else window.setTimeout(checkIfLoaded, 10);
})();
});
$.urlShortener = function (options) {
var settings = {};
var data = {};
$.extend(settings, $.urlShortener.settings, options);
(function checkScriptsAndClientLoaded() {
if (scriptsLoaded && clientLoaded) {
if (settings.longUrl != undefined) {
longToShort(settings);
} else if (settings.shortUrl != undefined) //URL info
{
shortUrlInfo(settings);
}
} else {
window.setTimeout(checkScriptsAndClientLoaded, 10);
}
})();
function longToShort(s) {
var data = {
'longUrl': s.longUrl
};
var request = gapi.client.urlshortener.url.insert({
'resource': data
});
request.execute(function (response) {
if (response.id != null) {
if (s.success) {
s.success.call(this, response.id);
}
} else {
if (s.error) {
s.error.call(this, response.error);
}
}
});
}
function shortUrlInfo(s) {
var data = {
'shortUrl': s.shortUrl,
'projection': s.projection
};
var request = gapi.client.urlshortener.url.get(data);
request.execute(function (response) {
if (response.longUrl != null) {
if (s.success) {
if (s.projection == undefined) s.success.call(this, response.longUrl);
else s.success.call(this, response);
}
} else {
if (s.error) {
s.error.call(this, response.error);
}
}
});
}
}
$.urlShortener.settings = {
apiKey: '',
version: 'v1',
};
}(jQuery));