Vimperatorで短縮URLを使う方法

参考1:http://d.hatena.ne.jp/mollifier/20100116/p1

参考1では、Google URL Shortenerを使ってやってるけど、現在β版が出て仕様が変更された模様。

しょうがなくbit.lyのアカウントを登録し、bit.ly用に書き換え。


参考2:http://ringoon.jp/2009/10/16/bitly-api-javascript-twitter.html

参考2をもとに、帰ってきたJSON形式をパースしようと思ったけど、元のURLがキーになっていてちょっとめんどくさい・・・


参考3:http://code.google.com/p/bitly-api/wiki/ApiDocumentation

で、参考3の公式ドキュメントを眺めていたらv3が出ていてJSON形式の扱いがとても楽


参考4:http://d.hatena.ne.jp/teramako/20080621/p1

直接実装しても良かったけど、copy.jsを使うことに。\\
参考3を元に記述

" copy.js
noremap cp :copy<Space>
js <<EOM
liberator.globalVariables.copy_templates = [
  { label: 'bit.ly',         value: 'get bit.ly short url',
    custom: function() {
      var login  = "Login ID";
      var apiKey = "API key";
      var bitly = 'http://api.bit.ly/v3/shorten'
          + '?format=json'
          + '&login=' + login
          + '&apiKey=' + apiKey
          + '&longUrl=' + encodeURIComponent(buffer.URL);
      ret = JSON.parse(util.httpGet(bitly).responseText).data.url;
      return ret;
    }
  }
];
EOM