Lesson35.今日のクイズを出題する
ワークフロー
ScriptFilterの2段構えです
今日のクイズというサイトを見つけました
1日3題で、1題につき1ページです
さらに過去問一覧のページがあったので
1段目のScriptFilterで過去問から日付を選んで
2段目のScriptFilterで3問の出題をするようにしました
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
1日の出題が3題でそれぞれURLが違います
そのためURLをそれぞれセットして、解釈して出題文を抽出します
改行だかなんだかわからないコードが入っていたのでちょっと強引な抽出となっています
JSONフォーマットでは、出題文をsubtitleにセットしています
その理由は、文字数がtitleより多くなるためです。文字が小さくなりますが。。。
3つだけかつ別ページからの取得なので、ヒアドキュで書いています
最後はOpenURLです
今日のクイズというサイトを見つけました
基本4択ですが、引っ掛けというか、思い違いを突いた問題があり面白いクイズです
過去問一覧に900問ほどあったので、お得意(?)のランダム表示にしました
グーグルサジェストをAlfred出力フォーマットで表示する
1.alfredworkflowをダウンロード
2.ファイルをダブルクリックしてワークフローに登録
Alfredからキーワード『qqq』で起動。表示されるその日のクイズを選択する
トップページに戻る