それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

AmazonのURLを掃除してurl短縮を一度にやるBookmarklet

Chrome拡張機能は好きになれない。限界までBookmarkletで頑張ります。

この2つを合わせると便利かもしれない。

やってみたのがコレ。
(ama-bitly)
うん、便利だ。prompt() で表示するとコピペも楽ちん。

2つを合わせたソース
u = location.href;
t = "takuya-hateblo-22";
a = (function(url, tag) {
    asin = (function(url) {
        if (r = url.match(/gp\/product\/([^\/]+)/)) {
            return r[1];
        } else if (r = url.match(/dp\/([^\/]+)/)) {
            return r[1];
        } else {
            return;
        }
    })(url);
    if(asin){
        return "http://amazon.jp/dp/" + asin + "/?tag=" + tag;

    }else{
        u = new URL(url)
        ret = u.search.replace("?","").split(/&/)
        ret.unshift(("tag="+tag));
        u.search = ret.join("&")
        u.hostname = "amazon.jp"
        return u.toString();
    }

})(u, t);
(function(long_url,callback){
    bi = new URL("http://api.bitly.com/v3/shorten?")
    var params = [
        "login=XXXXXXXXXXXXXXX",
        "domain=j.mp",
        "apiKey=XXXXXXXXXXXXXXX",
        "longUrl="+ encodeURIComponent(long_url)
    ]
    bi.search = "?"+params.join('&')
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange=function () {
       if (xhr.readyState === 4) {
        if (xhr.status === 200) {
         var res = JSON.parse(xhr.responseText);
         callback(res["data"]["url"])
        } else {
          alert('There was a problem with the request.');
        }
      }
    }
    xhr.open("GET",bi.toString());
    xhr.send(null)

})(a,function(a){prompt("", a);})