Lesson13.randomユーティリティの選択肢を動的に設定する
ワークフロー
・キーワード起動の引数によって、登録、編集、表示をそれぞれ処理する
分岐を担うConditionalは下記の通り引数{query}を評価して分岐させています
実装で利用した細かな手法
・登録するURLはSafariから取得する
・PostNotificaftionに2つのパラメータを渡す(標準出力以外の受け渡しとして変数を使う)
・Randomユーティリティのリストをファイルから読み込み動的に設定する
実装できなかったもの
・Alfred環境変数で設定したホームディレクトリ’~’がRunScriptでうまく稼働しない。。。
AddLisitの流れを見てください(赤いフロー)
タイトル取得用とURL取得用として2つRunScriptを配置しています
はじめのRunScriptでHPのタイトルをechoで標準出力して、ArgandVarsユーティリティで
その内容を変数titleに格納します(後で通知に利用します)
RunScript
ArgandVars
次のRunScriptでは、表示しているURLをechoで標準出力して、
AppendtoFileでテキストファイルに追加します
RunScript
AppendtoFile
URLをAppendtoFileオブジェクトでテキストファイルに追加した後に、PostNotificaftionで
メッセージを表示させます。このとき
テキストファイルの場所は、AppendtoFileオブジェクトの標準出力の{query}
サイトのタイトルは、ArgandVarsで設定した{var:title}を使用しています
PostNotificaftion
EditLisitの流れを見てください(白いフロー)
お気に入りURLのリストを編集させるためにデフォルトアプリで開きます
OpenFile
黄色い部分のフローです。
Lesson12のウィキペディアおまかせ表示では、あらかじめリストを準備しましたが、
今回はファイルから読み込んで動的にセットします
Randomユーティリティを見てください
Random:としてword from listを設定してWords:の一覧には{query}とあるだけです
そうです。このオブジェクトの前段のフローであるRunScriptの標準出力にリストを
書き出してセットするのです
ではそのRun Scriptを見てみましょう(黄色いRunScriptです)
実はとてもシンプルで、ファイルの内容をechoしているだけです
こうすることで、ファイルに登録されたテキスト(URL)が全てRandomユーティリティの
リストにっなるっていう寸法さ
でもなぜか、workflowの環境変数では”~”をセットしてもうまく動きません
”Users/…“と書けば環境変数でも使えましたが、その場合配布した先の環境では
ホームディレクトリの名称が私のものとは違うのでうまく動かないでしょう
仕方なくスクリプトの中で直接”~”を書いています
Randomユーティリティのリスト自体がURLですので、あとはOpenURLオブジェクトで
表示させればOKです
Lesson12のおまかせウィキペディアを作成した際に、ウィキペディアの高度な検索結果を
表示させたいと思いました
例えば『ウィキペディアのタイトルに”効果”か”現象”を含む記事を更新が新しい順に検索』
みたいな。でもこの場合、フィードバックとしてLargeTypeするURLが見ただけではわからず
あまりふさわしくない感じでした
そこでこのワークフローを思いつきました
お気に入りページというか、面白いと思った記事を保存して、後で適当に読むというような
利用を想定しています
お気に入りページの登録・ランダム表示
1.Alfredworkflowをダウンロード
2.ファイルをダブルクリックしてワークフローに登録
キーワード『favo』で起動
以下のパラメータを指定できます
パラメータなし → 追加したページをランダムに表示
aもしくはadd → Safariで閲覧しているページをテキストファイルに追加
eもしくはedit → 追加したテキストファイルを表示(リストの修正や削除ができます)
1.テキストファイル(~/Documents/Alfred/favo/favolist.txt)にURLを
保存します(1行に1URLとして記述)
2.ファイルの登録内容を読み込みランダム表示
シェルスクリプトをbashからzshに変更しました
トップページに戻る