\
Tools
\
Ubiquity
\
Blog
BOINC
Contact Me
Home
On The Web
Projects
Sitemap
Tools
Ubiquity
Wish List
Erik
Vergobbi
Vold
erikvvold@gmail.com
Vancouver
,
BC
Canada
Goo.gl Ubiquity Command
Command
goo.gl: Replaces the provided url with a
goo.gl short url
.
Source
var getUrlShorteningRequestParams = function (b) { function c() { for (var l = 0, m = 0; m < arguments.length; m++) l = l + arguments[m] & 4294967295; return l } function d(l) { l = l = String(l > 0 ? l : l + 4294967296); var m; m = l; for (var o = 0, n = false, p = m.length - 1; p >= 0; --p) { var q = Number(m.charAt(p)); if (n) { q *= 2; o += Math.floor(q / 10) + q % 10 } else o += q; n = !n } m = m = o % 10; o = 0; if (m != 0) { o = 10 - m; if (l.length % 2 == 1) { if (o % 2 == 1) o += 9; o /= 2 } } m = String(o); m += l; return l = m } function e(l) { for (var m = 5381, o = 0; o < l.length; o++) m = c(m << 5, m, l.charCodeAt(o)); return m } function f(l) { for (var m = 0, o = 0; o < l.length; o++) m = c(l.charCodeAt(o), m << 6, m << 16, -m); return m } var h = { byteArray_: b, charCodeAt: function (l) { return this.byteArray_[l] } }; h.length = h.byteArray_.length; var i = e(h.byteArray_); i = i >> 2 & 1073741823; i = i >> 4 & 67108800 | i & 63; i = i >> 4 & 4193280 | i & 1023; i = i >> 4 & 245760 | i & 16383; var j = "7"; h = f(h.byteArray_); var k = (i >> 2 & 15) << 4 | h & 15; k |= (i >> 6 & 15) << 12 | (h >> 8 & 15) << 8; k |= (i >> 10 & 15) << 20 | (h >> 16 & 15) << 16; k |= (i >> 14 & 15) << 28 | (h >> 24 & 15) << 24; j += d(k); return j; return i }; function shortify(url,callback){ var auth_token = getUrlShorteningRequestParams(url); var urlEscaped = escape(url).replace(/\+/g,"%2B"); jQuery.ajax({ type:"POST", dataType:"text", url:"http://goo.gl/api/url?user=toolbar@google.com&url="+urlEscaped + "&auth_token=" + auth_token, error:function(){ displayMessage( _( "There was an error." ) ); return false; }, success:callback }); } CmdUtils.CreateCommand( { names: [ 'goo.gl' ], arguments: [ {role: 'object', nountype: noun_arb_text, label: 'url'} ], icon:"", description:'Replaces the provided url with a goo.gl short url.', help:"", author: { name: "Erik Vold", email: "erikvvold@gmail.com"}, contributors: ["Erik Vold"], license: "MPL", version: "0.1", preview: function( pblock, args ) { pblock.innerHTML = _( "Replaces the provided url with a goo.gl short url" ); var selectedURL = jQuery.trim( args.object.text ); if( selectedURL.length == 0 ) selectedURL = context.focusedWindow.document.location; shortify( selectedURL, function( response ){ var object = JSON.parse(response); if(object.short_url == undefined) pblock.innerHTML = _( object.error_message ); else pblock.innerHTML = _( "Replaces the provided url with "+object.short_url ); return; }); return; }, execute: function( args ) { var selectedURL = jQuery.trim( args.object.text ); if( selectedURL.length == 0 ) selectedURL = context.focusedWindow.document.location; shortify( selectedURL, function( response ){ var object = JSON.parse(response); if(object.short_url == undefined) pblock.innerHTML = _( object.error_message ); else CmdUtils.setSelection( object.short_url ); return; }); return; } });