ついにUbiquityに巡り合えた

eXtream Gadgetのエントリを参考にしつつ、初めてのjQueryと格闘し、やっと簡単なコマンドが書けた。amazonジュンク堂のページを切り抜いて受託開発の極意の売れ行きを眺めることができる。
他にも社内ポータルサイトに蓄積されるプロジェクト週報をコマンド一つで呼び出せるようにしてみた。今まではFirefoxのタブを一つ占有していたのだけどこれからはその必要がなくなり、編集したければEnterキーでeditモードのページが開くので快適。それに簡単に呼び出せると週報のチェック忘れも減るので実用的だ。Ubiquityは意外に管理職、しかもunixコマンドラインで育った人たちに受けるかもしれない。

Ubiquityの魅力は何だろう?
強力なjQueryが組み込まれているのもポイントだけど、やっぱブラウザだけで全部開発が完結するところが一番。サーバーを用意するまでの根気がない僕にはぴったりだし、エディタすら使わなくてすむのが気に入った。ここまで簡単だと、今までは妄想だったことが自分でも実現できそうな気がしてくる。アイディアが膨らみ、それがしぼむ前に試すことができる。そんな理想のサービスプラットフォームに巡り合えた気がする。

CmdUtils.CreateCommand({
  name: "jyutaku",
  description: "受託開発の極意レポート",
  help: "受託開発の極意レポート",
  icon: "http://www.gihyo.co.jp/favicon.ico",

  preview: function( pblock, directObject ) {
    var jyunku_url = "http://www.junkudo.co.jp/detail2.jsp?ID=0277413453";
    var amazon_url = "http://www.amazon.co.jp/exec/obidos/ASIN/4774134538";
    var jq = jQuery

    jq.get(jyunku_url,function(response) {
      //ジュンク堂の場合、Shift_Jisエンコードなので一旦jqオブジェクトにした後、
      content = jq(pblock).hide().html(response).find("font")[12];
      //超キメウチで文字列を切り抜く
      result = jq(content).text().substring(7,9);
      jq(pblock).html("<img src='http://www.junkudo.co.jp/favicon.ico'</img>" +
        " ジュンク堂東池袋の在庫:" + result +"冊").css({ "font-size":"15px","color":"red" }).show();
    });

    jq.get(amazon_url,function(response) {
      //Amazonの場合、同じくShift_Jisエンコードなのだが何故かUTF-8に変換されてる?
      //ので、↓でOK
      response.match(/で(.+?)位/);
      result = RegExp.$1;

      //↓でもいいけど重くなる
      //content = jq(pblock).hide().html(response).find("#SalesRank");
      //jq(content).text().match(/で(.+?)位/);

      jq(pblock).html("<img src='http://www.amazon.co.jp/favicon.ico'</img>" + 
        " amazonランキング:" + result +"位").css({ "font-size":"15px","color":"red" }).show();
    });
  },

  execute: function(directObject) {
  }
})