Ubiquityでミク語変換できるようにしてみた

Ubiquityでなんか自作コマンドを作りたいなあと思ったので作ってみたよ。
お題は拙作ミク語変換。まあ誕生日便乗企画みたいな。
Ctrl+スペース → 「mikugo」 → [enter] と打つと、ブラウザで見てるページの選択した文字列がVOCALOID Editor流し込み用ひらがな歌詞に変換されるよ。


自動作詞Webサービス作詞スルで試してみるね。


対象を選んで


Ctrl+スペース → 「mikugo」


[enter]で変換。見てるページがそのまま書き換わるよ。


ソースはこれ。jQueryが使えるのでAPIを叩くのは楽チン。
レイアウトを変えないように改行タグを残す処理がちょっとやらしい感じ。

CmdUtils.CreateCommand({
  name: "mikugo",
  takes: {"lyrics": noun_arb_text},
  preview: function(pblock, lyrics) {
    pblock.innerHTML = "ミク語変換: " + lyrics.text;
  },
  execute: function(lyrics) {
    var $ = jQuery;
    var url = "http://aikelab.net/mikugo/api.cgi?chouon=Y&bunsetsu=Y&sentence="
    var txt = lyrics.html.replace("<br>", "[br]", "ig").replace(/<[^>]+>/g, "");
    url = url + encodeURI(txt);
    $.get(url, function(response) {
      var res = $("result", response).text();
      res = res.replace("[br]", "<br>", "g");
      CmdUtils.setSelection(res);
    }, "xml");
  }
})

ね、簡単でしょ?