bit.lyでの圧縮をWeb APIでなく実行するGroovyスクリプト
tyamaさんの
bit.ly が普通におもしろかったのでGroovyでAPIを使って遊んでみた
http://d.hatena.ne.jp/mottsnite/20100209/1265725950
のエントリーを見てbit.lyのAPIについて納得。
今まで適当にheaderのスクレイプでbit.ly圧縮していました。
Web APIを探す努力もしていませんでした。
APIがあるなら使うべきなので、そのうちこのメソッドはreplaceします。
ちなみに j.mp は単に bit.ly のエイリアスです。
headerの場合はloginとかなしでの実行となります。
今もこのメソッドでbot動かしています。
def getJmp(String longstr) { def url = 'http://bit.ly/?s=&keyword=&url='+URLEncoder.encode(longstr,"UTF-8") def ans = "" url.toURL().getText("UTF8").eachLine { if (it==~/.*\"shortUrl\".*\"(http.*)\".*/) { ans = it.replaceAll(/.*\"(http.*)\".*/) {m0, m1 -> m1 }.replaceAll(/bit\.ly/,"j.mp") } } return ans } assert getJmp('http%3A%2F%2Fwww-06.ibm.com%2Fsoftware%2Fjp%2F')== 'http://j.mp/cYbe1'