goo.glで短縮URL作成&ページタイトル取得
@@ -1,10 +1,9 @@
/*
- * @title goo.glで短縮URL作成
- * @description 今見ているページを短縮URLにします。
+ * @title goo.glで短縮URL作成&ページタイトル取得
+ * @description 今見ているページを短縮URLにする&ページタイトル取得。macky1207氏のhttp://goo.gl/lbwSをFork
* @include http://*
* @license MIT License
* @require
- * @private
*/
var doit = function (b) {
var USER = "toolbar@google.com";
@@ -92,7 +91,8 @@
alert("Oh...No...");
return false;
}
- window.prompt("Created shorturl by goo.gl!",data.short_url);
+ ptext=(document.title)+" "+(data.short_url);
+ window.prompt("Created shorturl by goo.gl!",ptext);
}
});
};
/*
* @title goo.glで短縮URL作成&ページタイトル取得
* @description 今見ているページを短縮URLにする&ページタイトル取得。macky1207氏のhttp://goo.gl/lbwSをFork
* @include http://*
* @license MIT License
* @require
*/
var doit = function (b) {
var USER = "toolbar@google.com";
var LONG_URL = encodeURIComponent(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 g = "auth_token";
var i = e(b);
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(b);
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);
var SHORT_URL = {
extURL:'http://goo.gl/api/url',
user:'toolbar@google.com',
url:b,
auth_token:j
};
return SHORT_URL;
};
var getscript = function(callb){
var g_script = document.createElement('script');
g_script.src ="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js";
document.body.appendChild(g_script);
var cid = setInterval(function(){
if(window.jQuery!=undefined){
clearInterval(cid);
delete cid;
callb();
}else{
document.body.appendChild(g_script);
}
},1000);
};
var getGoogl = function (url){
$.ajax({
url:'http://jsonptunnel.appspot.com/',
dataType:'jsonp',
jsonp:'_callback',
data:doit(url),
success:function(data){
if(!data||!data.short_url){
alert("Oh...No...");
return false;
}
ptext=(document.title)+" "+(data.short_url);
window.prompt("Created shorturl by goo.gl!",ptext);
}
});
};
getscript(function(){
var long_url = location.href;
getGoogl(long_url);
});
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。