Alfred付属のSuggest系ワークフローを一行で正常動作させる方法
ということで、さっきの記事のつづき。
日本語環境では正常に動作しない、AlfredのSuggest系ワークフローを修正する方法を紹介するよ。
一行って言ったのはわりかしうそじゃないよ!
すっごい楽だから誰にでもできるんだ。
Google Suggest Workflowを修正する
Alfred3に付属するGoogle Suggestのワークフローは、日本語は通るようになっているんだけど、候補が表示されないことがあるんだ。
これを修正するには、まずAlfred3環境設定のWorkflow一覧から、"Google Suggest"を選ぶ。
次に、ワークフロー画面に表示されている、上に"g"、下に"Script Filter"と書かれたアイコンをダブルクリックする。
ダイアログが表示されたね!
下半分に表示されているのが、Suggestを取得して表示するためのソースコードだよ。
修正するのはこれの5行目と6行目:
$xml = $wf->request( "http://google.com/complete/search?output=toolbar&q=".urlencode( $orig ) ); $xml = simplexml_load_string( utf8_encode($xml) );
になっている場所を、
$xml = $wf->request( "http://google.co.jp/complete/search?hl=ja&ie=utf_8&oe=utf_8&output=toolbar&q=".urlencode( $orig ) ); $xml = simplexml_load_string( $xml );
に修正して、右下のSave
ボタンを押す。
(↑のエリアは右にスクロールするよ!)
これだけで、表示される予測候補の数が大幅に増加するよ。
編集するのめんどいという人のために、Gistにソースを置いておいたよ。
https://gist.github.com/baramutu/56f3411e848978bd847ce73543ba4d82
Amazon Suggest Workflowを修正する
Alfred3に付属するAmazon Suggestのワークフローでは、日本語が通らない。
日本語のクエリーを投げると、文字化けした結果が表示されてしまうんだ。
これを修正するには、まずAlfred3環境設定のWorkflow一覧から、"Amazon Suggest"を選ぶ。
次に、ワークフロー画面に表示されている、上に"amazon"、下に"Script Filter"と書かれたアイコンをダブルクリックする。
修正するのは6行目:
$url = "http://completion.amazon.com/search/complete?method=completion&q=".urlencode( $in )."&search-alias=aps&mkt=1&x=updateISSCompletion&noCacheIE=1295031912518";
の部分を、
$url = "http://completion.amazon.co.jp/search/complete?method=completion&q=".urlencode( $in )."&search-alias=aps&mkt=6&x=updateISSCompletion&noCacheIE=1295031912518";
に置き換える。
(↑のエリアも右にスクロールするよ!)
これでとりあえず日本語は通るようになるんだけど、まだゴミが表示されちゃうんだ。
だから、
// Strip off the "header" data $str = substr( $str, strlen( 'completion = ["'.$in.'",[' ) ); // Remove the node info $str = substr( $str, 0, strpos( $str, ']' ) );
の部分を、
// Strip off the "header" data $substr = mb_substr( $str, 0, mb_strpos( $str, ',' ) ); $str = mb_substr( $str, strlen( $substr ) + 2); // Remove the node info $str = mb_substr( $str, 0, mb_strpos( $str, ']' ) );
に修正してもらいたいな。
そうすれば、検索結果にゴミが表示されなくなるよ。
こっちもGistにソースを置いておいたよ。
https://gist.github.com/baramutu/497865498d5160a219e8ecfc223c9500
どう、簡単だったでしょ?
変更個所は一行じゃなくて、二行と四行だったけど!
これに関しては素直に謝るよ。
ごめんなさい。
でもこの程度の些細な行きちがい、どうってことないよね。
心の広いあなたなら許してくれるって信じてるよ。
グッドトリップ!