AlfredWorkflowで遊ぶページ

Lesson24.Alfredの出力を10件以上に設定する/濁音・半濁音検索に対応する

開発メモ

サンプル動画 ワークフロー

1.AlfredのJson出力フォーマットを10件以上で出力する

 特段のテクニックは不要です
 Jsonフォーマットのitemsに10件以上、記述するだけです
 Alfredでは9件しか出力できませんが、矢印キー(↑や↓)で表示をスクロールできます
 最終行と開始行もシームレスにフォーカスが移動します
 Alfredってほんとよくできています

2.htmlを解析する

 今回はレシピ検索を題材に選びました
 『みんなのきょうの料理』というNHK料理番組のレシピサイトです
 検索が細やかにできるのと、検索結果が20行なので、このサイトにしました

 キーワード検索をしてみると、こんなURLになりした
 https://www.kyounoryouri.jp/search/recipe?keyword=たまねぎ

 次のページを見てみると
 https://www.kyounoryouri.jp/search/recipe?keyword=たまねぎ&pg=2
 
 簡単ですね。
 alfredの引数を2つにして、キーワードとページを入力する感じかな

 ちなみに、初めのページは下記でもOKでした
 https://www.kyounoryouri.jp/search/recipe?keyword=たまねぎ&pg=1
 
 ということで&pg=も全てくっつけても良さそうです
 今回は、1ページ目は引数は1つだけ、2ページ目移行は2つの引数ありということにしたので
 別々にURLを組み立てています

3.濁点、半濁点が検索されない事象を解消する

 テストをして、いきなり不具合にぶち当たりました
 『玉子』のレシピは検索できますが、『たまご』や『タマゴ』ではできません
 ひらがな、カタカナがNGなのかと思ったのですが、『チャーハン』や『ほうれんそう』は
 検索できるようです
 何種類もためしてみて、どうやら濁点『゛』、半濁点『゜』があると検索できないと
 判別できました

 ネットで調べてみると、文字コードの方式(NFCとNFD)に原因があるよう
 一見に一文字に見えても、NFDは2文字を統合したコード、NFCは単一のコードとして
 扱っているとのこと
 iconvで簡単に変換できるとのことでやってみた

 iconv -f UTF-8-MAC -t UTF-8


 こんなコードを入れたら、速解決
 ん、ちょっと待てよ
 Lesson4で%エンコードをするときに、iconvが使えなかったのでnkfをインストールしたの
 ですが、使えたのですね。。。まぁいいか

 

背景 

 Lesson14のRSSマニアのロジックの誤りで、AlfredのJSON出力フォーマットが9件以上でも
 対応していることがわかったので、
 検索結果が20件程度あるサイトを探して作ってみました
 HTMLのパーズは簡単だったのですが、テストの際に、キーワードによって検索できない
 不具合があり苦労しました
 いままで気がつかなかったけど、他のワークフローでも同様の事象(濁音、半濁音問題)が
 あったのかもしれませんね。まぁいいか

取扱説明

機能:

 NHK『きょうの料理』の公式レシピサイトを検索

インストール:

 1.Alfredworkflowをダウンロード
 2.ファイルをダブルクリックしてワークフローに登録

使い方:

 キーワード ”レシピ” + ”食材・料理・講師名など”
 検索結果表示後ブランクに続けてなんでも良い文字でページ制御 トップページに戻る