なんか定期的に twitter 上で URI エンコードされた文字列で会話してるやつらが TL 上に現れてきて、こいつら頭おかしいなーって思いつつも会話の中身は気になるし、でも毎回ワンライナーとかでデコードしたりエンコードしたりするのめんどうだなーと思ったので、Automator を使って、文字列を選択->右クリックして出てきたコンテキストメニューの中から「uri_decode」とか「uri_encode」を選ぶと相互に文字を変換できるようにした。curlで渡すパラメータとかも右クリックで作れて便利っぽい感じする。
Automatorってなに
なんかMacの便利ソフトで、選択中のテキストを受け取ってごにょごにょしたりファイルを受け取ってごにょごにょしたり、さらにその結果を unix パイプのように次のアクション渡してごにょごにょしたりできる。やろうと思えば選択されたテキストを右クリックでリブログとかも簡単にできると思う
今回はどういう手順でやったの
- アプリケーション -> AutomatorでAutomatorってアプリケーションを起動して、「サービス」を選択
- 右側の編集画面の上のほう、「"サービス"は、次の選択項目を受け取ります」のところをテキスト、「検索対象」をすべてのアプリケーションにしておくと、どんなアプリケーション使ってるときにもテキストを選択して右クリックすればいま作ってるサービスが呼べるようになるっぽい
- 一番左の「ライブラリ」からユーティリティの「シェルスクリプトを実行」を選んで右側の編集画面に D & D
- シェルスクリプトじゃなくても、テキストを入力に受け取るアクションならなんでも使える
- 好きにシェルスクリプト書く(perlとかrubyとかpythonも選べるよ!)
- 好きな名前で保存
- そうすると右クリックから保存した名前でこのサービスを呼び出せるようになる
よくわからないところ
この手順でやると自分が入力できる入力欄みたいなところのテキストしか選択できないっぽい。たとえば Safari で今見てるページに書かれてるテキストなんかを選択してもそこからはサービスが呼べないんだけど、google の検索ボックスに自分で書いたテキストなんかを選択すると呼べる。
本当はテキストボックスなら置換、そうじゃないテキストなら結果をポップアップとかしたいんだけど、そこまで調べるの面倒だから調べてない。誰か詳しいひといたら教えてほしい。
ちなみに OS は Lionでやってる。Snow Leopard とかだとまたちょっと違うかもしれないけど基本は同じだと思う。