FirefoxとUbiquityで作るWordPressコマンドライン検索とalc検索

Mozilla Labsが公開したFirefoxの拡張機能『Ubiquity』というのがすごいらしいです。どのくらいすごいかというとMacで言うところのQuicksilverくらいすごいらしいんです。

要するにブラウザの動きをコマンドラインで色々できる、ということらしい。ハイヨ、シルバーよりはすごそうです(`・ω・´)

builtincmds.js (UbiquityがインストールされたFirefoxから開いてください)にコマンドが定義されているようなので、これを参考にすれば自分でもコマンドが作れるそうです。

ぴこん(‘∇’)!

wordpressについている検索もクエリをURLで投げるタイプだったはず。これを使えば、Firefoxからコマンドラインで自分の(またはよく参考にするサイトの)wordpress検索を利用できそうです。ということ、さっそく作ってみました。

WordPressコマンドライン検索を作るよ

コマンドライン

Windowsだと標準でCtrl+Spaceを押すことで、上の図のようなコマンドラインが表示されます。

ここで”command-editor”と入力してやると…

Ubiquity Command Editor

このようなコマンドエディターが立ち上がります。ここに

makeSearchCommand({
  name: “odekowp”,
  url: “http://8bitodyssey.com/?s={QUERY}”,
  icon: “http://8bitodyssey.com/favicon.ico”,
  description: “Searches words on Odysseygate.com.”,
});

と入力してやるとコマンド完成(自動的に保存されるのだそうです)。

command-list

コマンドリストにも他のコマンドに混じってしっかりと入っています。では、さっそく実行してみましょう。ドキドキ。

odekowp 検索ワード と入力

odekowp “検索ワード”、と入力してENTERを押します。すると…

odekowp wordpress の検索結果

新しいタブが作られて、検索結果:wordpressが表示されました。うまくいったようです。続けて、もうひとつテスト。

odekowp クローン でテスト

日本語ブログなので、日本語もちぇっくしないとね~。ということで、最近見に行った『クローン大戦』が出ることを想定して入力したところ…

見つかりませんでした

あれ~、失敗。検索フォームの中のワードも化けてしまっているし、URLも一度は「?s=クローン」に遷移するのですが、すぐにブラウザが実態参照にリダイレクトしてしまいました。(現在Ubiquityでは日本語の変換決定をENTERととらえてしまうようになっていますが、日本語を入力して再度開せば日本語が入力できます。それでもこの検索はうまくいかなかったのですが…)

たぶん文字の扱いに何か問題があるのだと思うのですが、これ以上ぼくには分かりません。ということで、教えてエロい人偉い人!

転んでもただでは起きない!今度はalc検索だ!

WordPress検索は中途半端になってしまいましたが、次はalc検索を実現してみたいと思います。

alcは英語学習教材で有名な企業ですが、ネットでは英和・和英検索を提供していることでも有名で、ぼくもWordPressのリリースを翻訳するときにとてもとてもお世話になっています。

これをFirefoxのコマンドラインから利用できたらとても便利そうです(…がなんか怒られそうな気もしてきました)。

makeSearchCommand({
  name: “alc”,
  url: “http://eow.alc.co.jp/{QUERY}/UTF-8/”,
  icon: “http://www.alc.co.jp/favicon.ico”,
  description: “Searches words on alc.”,
});

さきほどと同様に、コマンドエディターに上記のソースを入力します。

英語、日本語ともにうまくいくか実験です。そう、せっかくなので、「実験」とその英語である「experiment」で試してみました。

alc検索テスト

英語でalc検索テスト

日本語でalc検索テスト

成功です!alcでは日本語も実態参照にならずにURLに入っているのでうまく機能しているみたいです。

WordPress検索のほうは引き続き調査が必要ですが、成功事例が一つ作れました。他のものにも応用できそうで楽しみです。

追記:エロいh…じゃなかったひろまささんに相談したところ、以下のコードで解決できることが分かりました!

makeSearchCommand({ name: “odekowp”, url: “http://8bitodyssey.com/search/{QUERY}/”, icon: “http://8bitodyssey.com/favicon.ico”, description: “Searches words on Odysseygate.com.”, });

このコードであれば、日本語でも化けずに検索できますね。alc検索のコードと比べても、どうも「?s=」というのが怪しい気がします(Ubiquityが標準で用意しているgoogle検索はこれでもうまくいっているのですが…)。ということで、これがうまくいくならタグもうまくいくはずだ!と思ってこんなのも作ってみました。

makeSearchCommand({ name: “odekotag”, url: “http://8bitodyssey.com/archives/tag/{QUERY}”, icon: “http://8bitodyssey.com/favicon.ico”, description: “Searches Tags on Odysseygate.com.”, });

コマンドラインから縦横無尽にいけそうです。むふふふ。