AlfredWorkflowで遊ぶページ

Lesson28.ワークフローをの分岐を統合する

開発メモ

ワークフロー

1.URLを調べてみる

 植物Q&Aのトップ
 Q&Aの一覧が表示されています。回答日が最新の順番になっているようです
 3226件という総数、一覧の明細が20行、ページしたのインジケーターの最大が162ページ
 わかり易いですね
 一覧の明細には4桁のIDがありますが、こちらは登録日順で、歯抜けもあるようです
 
 個々のQ&AのURLは https://jspp.org/hiroba/q_and_a/detail.html?id=xxxx
 IDがわかれば簡単にURLを生成できますね
 
 ワークフローを考えましょう
 HOTKEYスタートで選択中のテキストがある場合はそのテキストでQ&Aを検索
 選択中のテキストがない場合は、トップページから最大ページを取得して、
 ランダムな1ページを選んで、そのページの目次をAlfredに表示させるという感じ

2.選択テキストの有無で分岐する

 HOTKEYでselection in macOSを取得して、conditionalユーティリティを使って{query}の
 有無を判定します
 選択テキストがない場合は、20行のQ&AをリターンさせるためScriptFiltetに処理を渡します
 選択テキストがある場合は、RunScriptでURLを組み立てています
 (OpenURLでもできますが、今回はOpenURLをひとつにしています)
 
 RunScript
 

3.JSONフォーマットを作成する

 ScriptFilterの中身となる部分ですが、他のRSS系のLesson同様の作りで
 cURLでソースを取得、grepやsedで必要部分の抽出、Jsonの作成の流れです
 今回は最初に目次ページの最大数を取得するのでURLアクセスが1回多くなっています 
 ソースにコメントがあるので参考にしてください
 
 ScriptFilter
 

4.フローを統合する

 最後のOpen URLは分岐した2つのフローを同時に受けています
 こんなフローも描けるということで実装してみました
 このためOpenURLで実際にアクセスするURLは{query}として、事前に組み立てています

背景

 以前から、alfredのfeaturesのカスタムサーチとして、下記のURLでの検索を登録して
 いました
 https://jspp.org/hiroba/q_and_a/?key={query}&target=full
 今回ランダムサーチも付け加えてワークフロー化してみした

取扱説明

機能:

 日本植物生理学会のHP『みんなのひろば』の植物Q&Aを検索もしくはランダム表示する

インストール:

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

使い方:

 ・文字列を選択してHotkey『⌃p』を入力(Hotkeyはご自身での設定が必要です)
 ・表示されたAlfredバーに数字を入力

トップページに戻る