AlfredWorkflowで遊ぶページ

Lesson35.今日のクイズを出題する

開発メモ

ワークフロー

1.ワークフローの構成

 ScriptFilterの2段構えです
 今日のクイズというサイトを見つけました
 1日3題で、1題につき1ページです
 さらに過去問一覧のページがあったので
 1段目のScriptFilterで過去問から日付を選んで
 2段目のScriptFilterで3問の出題をするようにしました

2.1段目のScriptFilter

 URLの解釈で、タイトルとURLをAタグから同時に抽出しています
 Aタグのリンク先と表示文字列がそれぞれAlfred出力のargとtitleになります
 意味はないですがsedで順番を入れ替えてitem配列に格納しています
 
 具体的には
 item[1] 1項目目のタイトル item[2] 1項目目のリンク先 
 item[3] 2項目目のタイトル item[4] 2項目目のリンク先
 item[5] 3項目目のタイトル item[6] 3項目目のリンク先
 ・・・・という配列になりますが、上記の1行を1つのAタグからセットしています
 
 具体的には
 <A href="リンク先URL">表示テキスト</a>
 というAタグから
 表示テキスト + ブランク + リンク先URL + ブランク 
 という文字列を作り出しています
 
 これをgrepでAタグの数だけ取ってきてカッコで括ってitem変数に配列として格納します
 
 JSONフォーマットには、9つ分セットします
 配列の要素数を2で割って項目数をもとめ、shuf(シャッフル)でランダムに9個抽出
 sortは表示テキストの先頭が日付なので、見やすいようにソートしています
 あとはJSONフォーマットへのセットでOK

3.2段目のScriptFilter


 1日の出題が3題でそれぞれURLが違います
 そのためURLをそれぞれセットして、解釈して出題文を抽出します
 改行だかなんだかわからないコードが入っていたのでちょっと強引な抽出となっています
 
 JSONフォーマットでは、出題文をsubtitleにセットしています
 その理由は、文字数がtitleより多くなるためです。文字が小さくなりますが。。。 
 3つだけかつ別ページからの取得なので、ヒアドキュで書いています
 最後はOpenURLです
 

背景

 今日のクイズというサイトを見つけました
 基本4択ですが、引っ掛けというか、思い違いを突いた問題があり面白いクイズです
 過去問一覧に900問ほどあったので、お得意(?)のランダム表示にしました

取扱説明

機能:

 グーグルサジェストをAlfred出力フォーマットで表示する

インストール:

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

使い方:

 Alfredからキーワード『qqq』で起動。表示されるその日のクイズを選択する

トップページに戻る