Lesson4.シェルスクリプトでURLエンコードする
ワークフロー
試しに価格コムで『時計』と検索してみましょう
リターンされたブラウザのURLはこうなっています
https://kakaku.com/search_results/%8E%9E%8Cv/
%の部分は日本語をエンコードしたものでしょう
URLでたまに見かけますが、日本語のままではうまく稼働しないブラウザに
対応するためコード化しています
URLでは基本的にUTF-8を使うものと思っていたのですが違うようです
ネットの世界は便利なもので、デコードサイトがあるので確認したら
Shift-JISでした
ということは、上記リターンのURLの%部分を作ればOKですね
シェルスクリプトで実施するにはnkfコマンドを利用するそうです
試しにターミナル.appで叩いてたら、nkfがない!
nkfコマンドはインストールが必要なようです
その前提のパッケージ管理ソフトhomebrewも導入が必要でした
苦労して前提ができたところでAlfredのスクリプトを作成
実装したコードはたった3行。キモとなるのは下記のコード
open "https://kakaku.com/search_results/"`echo -n $query | nkf -WsMQ | tr = % `
バックスラッシュはコマンドの結果を返します
結果の文字列をそのままURLと連結してOpenしています
シェルスクリプトはワンライナーで書くことがよくあるので慣れが必要
ちなみに$queryはalfredの入力パラメータ=検索キーワード
nkfでs-jisに変換すると=つきのコードが返ってくるので
trで=を%に置き換えています
RunScript
・Alfredのインプットキーワドを”価格”、”Kakaku”として、
日本語でも英数でも起動できるようにしています(バイリンガル起動)
・nkfのパスを環境変数PATHに指定しています
なので、それぞれの環境にあわせた変更が必要です
(そもそもnkfをパスの通った場所におくべきだったかな)
価格コムはカメラ、パソコン、家電関連を買う時に参考にするぐらいですが
URLに%エンコードがあったので題材としました
価格コム を検索する
※URLのための%エンコードを実装したワークフローです
1.alfredworkflowをダウンロード
2.ファイルをダブルクリックしてワークフローに登録
Alfredからキーワード『kakaku』or『価格』 + 検索したい文字列
トップページに戻る